アプリ版:「スタンプのみでお礼する」機能のリリースについて

楕円を近似円弧で分割したいと考えています。
やりたいことは、
・楕円を指定分割数で分割(4の倍数限定でもOK)
・円弧で表現
・可能であれば、隣り合う円弧の頂点の接線は
 同一(180度で接する)
http://www.de-products.co.jp/daen_kinji_12.doc
ここに12分割の方法はありましたが、16分割でも32分割でも
可能な一般的な方法があればと思います。

A 回答 (8件)

ANo.5のコメントについてです。



すぐにやる時間はないんですけど、一応。
「短軸と長軸の長さが楕円と一致するようにする」という条件をさらに追加することはたぶん可能で、ただしその場合、分割点の配置が全く任意という訳にはいかなくなる、と考えます。ANo.4の方法において分割数が最小なのは、楕円を4分割する場合(楕円の1/4に分割点を1個置く)ですが、その場合に上記の条件を満たすような分割点が存在することがおそらく証明できる。だとすれば、分割数がそれより多い場合、自由度が大きくなるんだから出来ない筈はないという予想です。
    • good
    • 0
この回答へのお礼

わざわざありがとうございます。

もしも可能であればその方法を知りたいとは思いますが、
私の知識では例え4分割でも証明できず、
考えもつきません。

しばらくは、今現在できている状況で逃げたいと
思いますが、もし、方法がわかりましたらまたご教授下さい。

重ねてになりますが、本当にありがとうございました。

お礼日時:2008/01/16 16:31

うわっとと、ANo.5にもうひとつ間違い。



> 短軸に最も近い分割点をq[k], q[k+1]とすると、(q[k+1]は短軸を対称軸とするq[k]の鏡像ですから)

の部分に出て来る「q」は、全部「p」に訂正です。
    • good
    • 0

おっとと。

ANo.5で「ANo.3の捕足について」と書いたのは間違い。字まで間違ってる~
「ANo.4の補足について」に訂正です。
    • good
    • 0

ANo.3の捕足についてです。

任意の円弧が切れるんなら、ANo.2の方法で出来ます。

> 上記のように点をとっても、ANo.2の方法では対称にならないようです

 ANo.2で

>> 楕円の周を楕円の軸(例えば長軸)で2分割して、その片割れ(ただし端点以外の場所)にn個の点p[i] (i=1, 2, …, n)を順に取ります。

と説明した通り、端点、すなわち長軸上には分割点を置かないという条件がある。ところが、お試しになった

> 分割点を0,45,90,135,180,225,270,315°の部分に作成した場合

は長軸上に分割点があるから、旨く行かない。
 さらに短軸についても対称にしたいのなら、短軸上にも分割点を置かないという条件が付きます。(ANo.4[1]では言い忘れた。すいません。)

 これらの条件を満たし、かつ分割点の配置が楕円の長軸についても短軸についても対称になるようにしてやれば、円弧の連なりで作られる曲線は長軸についても短軸についても対称にしかなりえません。なぜなら、短軸に最も近い分割点をq[k], q[k+1]とすると、(q[k+1]は短軸を対称軸とするq[k]の鏡像ですから)両者の垂直二等分線a[k]は短軸そのものであり、従って両者を結ぶ円弧(短軸と交差する円弧)の中心は必ず短軸上にあるからです。同様に、長軸に対する対称性はANo.2の(3*)によって保証されます。
    • good
    • 0
この回答へのお礼

なんどもお答えいただき、本当にありがとうございます。

アドバイスいただきましたようにすることで、
対称に作成することができました。

ただ、理想をいえば、長軸と短軸が与えられての楕円作成なので、
本当は分割点は長軸と短軸との交点も与えたいと思っていました。
※長軸と短軸との交点を分割点として与えないと、
 長軸と短軸の長さが変わってしまう為

そこで、以下のようにすることにしました。
※説明の為、中心を原点として説明します。
1.円弧を適当に分割する。
2.X軸(+)側と楕円の交点を求める。
3.2で求めた交点を挟む2つの分割点と2で求めた交点の
  3点を通る円弧を求める。
4.3を開始円弧とし、ご教授いただいた方法で円弧を作成していく。

この方法で、少なくとも1つの軸長さは満たすことができるので、
理想通りとはいかないまでも、ほぼ希望通りの円弧郡が
求められたのではないかと思っています。

長いあいだ、お付き合いいただき、本当にありがとうございました。

お礼日時:2008/01/15 16:56

ANo.2へのコメントについてです。



[1]
>・ 楕円は長軸及び短軸で対称となるが、この方法で求めていくと
> 対称にならない。

 ANo.2の方法でも、「近似した曲線が長軸及び短軸について対称になるようにする」という追加条件は容易に満たせます。すなわち、楕円を長軸で切って半分にした片割れ上にn個の点p[i] (i=1, 2, …, n)を順に取る際に、これらn個の点が短軸について対称に並ぶようにすれば良いだけです。

[2]
>・「まず(3*)を満たすような点q[0]をテキトーに決めまず。」
> この部分による最初の円が適当だと、次の円弧が存在しない
> 状態になってしまう場合がある。
> (円の中心が楕円の外になってしまう)

 ANo.2の方法において「次の円弧」は必ず存在します。しかし、その円弧の中心がいつも楕円の中に入るという訳には行きません。
 ですが、質問文中にあるURLで示されている例でも、円の中心が楕円の外に来るのは同じ事です。つまり、ANo.2の冒頭に申し上げた通り、(円ではなく)部分的な円弧を切れるような加工機でなくては、ANo.2や質問文にあるURLの方法は使えない訳です。

[3]ANo.1でお尋ねした質問を、もう少し詳細に繰り返す必要があるようです。
●加工機は何が出来るんですか?(これまでのやりとりから、どうやら円弧は切れず、「任意の位置に任意の直径の円周を切ることができる」らしいと思われますが…)
●「円の中心が楕円の外になってしまう」とまずい、という話からすると、板に楕円形の穴を開けたいのだろうと思われます。一方、ANo.1のコメントにある「瓢箪の接続部分のようにへこんでいるように分割してしまうと、金型がその円に食い込んでしま」ってまずい、という話からすると(金型が抜けなくなるというのか、余計な切断線によって品物が壊れてしまうというのか、よく分からないけれど仮に後者なら)、楕円形の品物を作りたいのだろうと思われます。(どっちなのかがはっきりすれば、話の見通しが良くなると思います。)
●精度の指定もなく近似を使う理由は何でしょうか。「その穴(あるいは楕円形の品物)は何か別のものときちんと嵌め合わせるという訳ではなく、見た目で楕円に似ていればいいので、寸法はイーカゲンで良い」ということなのか、それとも「最終的に手作業で磨くからこの段階の加工は荒削りで良い」ということなのか。もし後者なら、穴の場合、近似した曲線が楕円の中に含まれる(楕円形の品物の場合なら、近似した曲線の中に楕円が含まれる)ようにしなくてはなりません。

[4]([3]の質問の答を先取りする話になりますが、)もし、加工機は任意の寸法の円形の穴を開けるだけのものであるとすると、この加工機で「隣り合う円弧の頂点の接線は同一」を満たすことは出来ません。
 なぜなら、楕円形の穴をあけるのが目的である場合、穴の周囲を壊さないためには、切る円は楕円に内包される円である必要があります。ところが、楕円が短軸と交差する近辺では楕円の曲率半径が短軸の長さの1/2よりも必ず大きく、従ってこの部分を楕円に内包される円で近似しようとしてもせいぜい1次近似(楕円と近似円の接線が一致するというレベル)までしか近似できない。このため、「隣り合う円弧」を構成する他の円との継ぎ目には角が出来て、「瓢箪の接続部分のようにへこんでいる」ようにしかなりません。
 また、楕円形の品物を作るのが目的である場合、品物を壊さないためには、切る円は楕円を内包する円である必要があります。楕円が長軸と交差する近辺では楕円の曲率半径が長軸の長さの1/2よりも必ず小さく、従ってこの部分を楕円を内包する円で近似しようとしてもせいぜい1次近似までしか近似できない。他の円との継ぎ目には角が出来てしまいます。
 従って、いずれにせよ「隣り合う円弧の頂点の接線は同一」を満たすことは出来ません。

この回答への補足

回答ありがとうございます。

>ANo.2の方法でも、「近似した曲線が長軸及び短軸について対称になる
>ようにする」という追加条件は容易に満たせます。すなわち、楕円を
>長軸で切って半分にした片割れ上にn個の点p[i] (i=1, 2, …, n)を順
>に取る際に、これらn個の点が短軸について対称に並ぶようにすれば良
>いだけです。

上記のように点をとっても、ANo.2の方法では対称にならないようです。
つまり、分割点という意味では対象になっても、
その間の円弧が対象か?という意味では、
半径が異なってきてしまうかと思いますが、私の円弧の作り方が
間違っているのでしょうか?
簡単な例で説明すると、傾きの無い楕円で考えて、中心を(0,0)で分割点を
0,45,90,135,180,225,270,315°の部分に作成した場合に、
0~45の円弧を適当に作り、その円弧と接線が同一になるように、
45~90の円弧を作り、またその接線と同一になるように90~135の
円弧を作った場合、45~90と90~135の円弧の半径が同一に
ならないという意味です。

>●加工機は何が出来るんですか?(これまでのやりとりから、どうや
>ら円弧は切れず、「任意の位置に任意の直径の円周を切ることができ
>る」らしいと思われますが…)

円弧は切れます。
始点、終点、半径の3つの要素を与えることにより、
始点から終点までの円弧を切断することが可能です。

>●「円の中心が楕円の外になってしまう」とまずい、という話からす
> 中略
>楕円形の品物を作りたいのだろうと思われます。

これについては、穴を明けたい場合もあれば、製品を作りたい
場合もあります。

>●精度の指定もなく近似を使う理由は何でしょうか。
> 中略
>見た目で楕円に似ていればいいので、寸法はイーカゲンで良い」

これは、その通りで、見た目が楕円に似ていればOKです。
おっしゃっている意味は大変よくわかりますが、楕円加工が
できない加工機である以上、厳密な物はできないとわりきっています。
ある程度の穴ができれば、最終的には削るなり、溶接するなり
してそれっぽく見せる、逆に言えば、精度が求められるような
製品ではないとお考え下さい。

但し、ちょっと円弧とは離れた部分で加工機の説明をすると、
例えば、(0,0)(100,0)(100,50)(0,50)の長方形の穴を明けたいとします。
これを10×10の正方形の金型で打ち抜く場合、
(5,5)(15,5)(25,5)~(85,5)(95,5)の座標で打ち抜いていくわけです。
※実際には、金型は少しダブらせて抜きます。
この例ではこれで底辺の切断ができている訳ですが、
角が90°でなく鋭角の場合、底辺を切断していくと、次の斜辺を
打ち抜いてしまいます。

こういう性質の加工機である為、楕円のつなぎ目にへこみがあると、
楕円という製品を抜こうと思った場合に、うまく加工できないので、
接線を同一にしたいと発言したわけです。

※実際に、楕円の製品を抜こうとした場合には、小さい丸金型
 を少しずつずらして加工していきます。

補足日時:2008/01/15 09:51
    • good
    • 0

参考URLの方法は元々は楕円の近似作図法のようですが、不十分な点があるのでしょうか。


楕円の方程式を、X^2/a^2 + Y^2/b^2 =1 としたとき、a=10,b=8 の場合を作図ではなく数値計算で近似円弧を求めてExcelのグラフで確認すると結構よい近似と思われます。

>近似という言葉を使ってしまいましたがそれほど厳密性をもっていません。

そうならば参考URLの方法でいいのでは。

>例えば16分割であれば、その分割円弧、16個の端点が全て本来の楕円上の点であればOKと考えています。

この条件は強すぎるようです。12分割でもそうなっていないですね。
実際に使う楕円の長径aと短径bの数値はどの程度なのでしょうか。

この回答への補足

ご回答ありがとうございます。

順番が逆になりますが、

>実際に使う楕円の長径aと短径bの数値はどの程度なのでしょうか。

これについては、加工する製品によってバラバラです。
aとbの比率についても、大きさについても一概にいえません。

したがって、小さい楕円や比率が真円に近い場合には
分割数を少なくし、大きい楕円や比率がかなり異なる場合には
分割数を大きくすることで、楕円っぽくみせたいということです。

ですから、16分割でそれなりに楕円っぽくなる場合は
参考URLの方法で問題ないですが、分割数を増減させる場合の
一般的な求め方があればと思い、投稿した次第です。

補足日時:2008/01/07 13:25
    • good
    • 0

ANo.1のコメントだけではよく分かりませんが、立ち入ったことはさておくとしても、加工機は(円ではなく)円弧を切れるんですね?(もしも円しか切れないのだとすると、その円と、目的とする楕円とが余計なところで交差してしまうと具合が悪いのでは?)ともあれ、



> 端点が全て本来の楕円上の点であればOK

と仰るのだから、

問題: 閉曲線E上にn個の点p[0], p[1], p[2],…, p[n-1], p[n](ただしp[n]=p[0]とする)を決め、p[i]とp[i+1]を通る円q[i](i=0, 1, 2,…,n-1)を作る。ただし、点p[i]において円q[i-1]の接線と円q[i]の接線が一致するようにq[i](i=0, 1, 2,…,n-1)を決めたい。

という幾何の問題だけを考えましょう。

 明らかに、
(1) 円q[i]が点p[i]と点p[i+1]を通るための必要十分条件は、点p[i]と点p[i+1]を結ぶ線分の垂直二等分線をa[i]とするとき、円q[i]の中心(これもq[i]と書く事にしましょう)がa[i]上にあること。(i=0, 1, …, n-1)
(2) 円q[i-1]の点p[i]における接線と円q[i]の点p[i]における接線が共通になるための必要充分条件は、点p[i]と点q[i-1]を通る直線(これをb[i]としましょう)が点q[i]を通ること。(i=1, 2, …, n)(なぜならば、p[i]とq[i]を結ぶ線分は円q[i]の半径であり、p[i]に於いて円q[i]の円周と垂直に交わる。そして、p[i]とq[i-1]を結ぶ線分は円q[i-1]の半径であり、p[i]に於いて円q[i-1]の円周と垂直に交わる。)
 (ただし、円q[n]とは円q[0]と同じもの。)

 つまり、曲線に沿って点p[0], p[1], p[2],…,p[n-1]をテキトーに並べます。で、(1)と(2)の両方を満たすようにq[i](i=0, 2, …, n-1)を決められれば良い訳です。
 仮に、(1)を満たすような点q[1]をテキトーに決めたとしましょう。すると、(1)(2)より、直線b[2]と直線a[2]との交点が点q[2]と決まります。以下同様で、点q[n]まで決まってしまいます。
 さてこのとき、(2)により、点q[n](=点q[0]), q[1], p[1]の三点が直線上に来なくてはならない。逆に言えば、これが満たされるようにq[1]を決めなくちゃいけない訳です。

 ですが、ご質問では閉曲線Eってのが楕円と決まっています。なので楕円の対称性を利用することにしましょう。すなわち、楕円の周を楕円の軸(例えば長軸)で2分割して、その片割れ(ただし端点以外の場所)にn個の点p[i] (i=1, 2, …, n)を順に取ります。残りの半分については分割線(長軸)を対称軸としてp[i]の鏡像の位置に点p'[i] (i=1, 2, …, n)を取る。そして、点p'[i] (i=1, 2, …, n)については円q[i]の鏡像q'[i]で繋ぐことにします。(だから、仰るところの「2n分割」になります。)そうすると、
(1*) 円q[i]が点p[i]と点p[i+1]を通るための必要十分条件は、点p[i]と点p[i+1]を結ぶ線分の垂直二等分線をa[i]とするとき、円q[i]の中心q[i]がa[i]上にあること。(i=1, 2, …, n-1)
(2*) 円q[i-1]の点p[i]における接線と円q[i]の点p[i]における接線が共通になるための必要充分条件は、点p[i]と点q[i-1]を通る直線b[i]が点q[i]を通ること。(i=1, 2, …, n)
(3*) 点p[1]と点p'[1]を通る円の中心q[0](=q'[0])は対称軸上にある。
(4*) 点p[n]と点p'[n]を通る円の中心q[n](=q'[n])は対称軸上にある。
ということになります。

 なので、まず(3*)を満たすような点q[0]をテキトーに決めまず。すると(1*)(2*)より、直線b[1]と直線a[1]との交点が点q[2]と決まります。以下同様で、点q[n-1]まで決まってしまいます。そして、(2*)と(4*)からq[n]が決まります。

 以上のやり方を使うと、最初の1個の円(円q[0])をテキトーな半径で描けば、あとは全部決まってしまう。

 この後に、点をどう並べ円q[0]の半径を幾らにするのが最良の「近似」か?ですとか、ある一定の「近似精度」を満たしつつnを最小にするには?などの問いが派生する訳ですが、これらは『「近似」とはどういうことか、近所の精度をどうやって測るか』をはっきりさせないと論じようがありません。ですが、精度の測り方がどうあれ、曲率半径の小さい部分では点の間隔を詰めた方が良さそうだ、ということは直感的に明らかです。

この回答への補足

アドバイスいただいた内容を確認させていただきました。

私が今までに挙げた要素は確かに満たされ、
大変参考になりました。

ただ、この手順を確認したところ、あらたな要望があります。

・「まず(3*)を満たすような点q[0]をテキトーに決めまず。」
 この部分による最初の円が適当だと、次の円弧が存在しない
 状態になってしまう場合がある。
 (円の中心が楕円の外になってしまう)

・楕円は長軸及び短軸で対称となるが、この方法で求めていくと
 対称にならない。

そこで、最初の円弧を適当ではなく、長軸、短軸で対象となるような
円弧を求めていけるような計算方法はないでしょうか?

補足日時:2008/01/09 14:03
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
また、お返事が送れて申し訳ありません。

頂戴しましたアドバイスを一つずつ理解できるよう考えてみます。
ありがとうございました。

お礼日時:2008/01/07 09:26

 一口に「近似」と言っても、何を以て「近似になっている」と判断するかの基準は色々です。

「近似」という言葉の意味が厳密に定まれば、方法も決まります。しかし、ご質問(ご紹介のページも含む)ではこの点が曖昧なので、答がありすぎて選べないんです。
 応用目的(具体的にどんな状況で、何のために「楕円を近似円弧で分割」するのか)がはっきり分かれば、「その応用に於いてはどんな性質を持つ近似が好ましいか」も分かり、答が絞れるでしょう。

この回答への補足

ご回答ありがとうございます。

最終的にやりたいことは、加工機で金属を抜き加工したいのです。
しかしながら、この加工機は楕円を抜く命令をもっていない為、
円弧におきかえて、似ている楕円形状で抜ければと思っております。

ただし、金型で外周を抜いていくタイプの加工機である為、
瓢箪の接続部分のようにへこんでいるように分割してしまうと、
金型がその円に食い込んでしまう為、加工できなくなるので、
隣り合う円弧の頂点の接線が180度になればと考えています。
(長角の腹の部分で少しずつ、円弧を削っていくようなイメージ)

近似という言葉を使ってしまいましたがそれほど厳密性をもっていません。
例えば16分割であれば、その分割円弧、16個の端点が全て本来の楕円上の
点であればOKと考えています。
(当然、周長等はバラバラでOK)

以上、よろしくお願いいたします。

補足日時:2007/12/25 09:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!