Indexへ
(10171)//【10173】→(10175)
------------------------
【タイトル】楕円と楕円の交点
【記事番号】 10173 (*)
【 日時 】07/08/19 23:22
【 発言者 】sugi

sugiです。皆さん、こんにちは。

siegelさんのBBSで楕円と楕円の交点を求める話題があり、三宅
さんの「Lite & Seen Lite」の「282ci_inters.bat」を紹介させて
頂きました。

siegelさんのBBS
http://www.interz.net/ssbbs/sr3_bbss.cgi?cat=481siegel

三宅さんの「Lite & Seen Lite」
http://www17.ocn.ne.jp/~lite/indexx.html

jww の標準機能なら右クリック一発なんですが、改めて考えるとな
かなか難しいです。

どうやって楕円と楕円の交点を求めているのかと思い、三宅さんの
スクリプトを調べていたのですが、その過程で動作がおかしくなる
ケースを見つけたので、こちらでバグ報告をさせてもらいます。

# 細かいツッコミなんですが。^^;

まず、形状を座標ファイルから形状を読み込んでください。

# ケース1
ci 0 0 5
ci 10 0 5
# ケース2
ci 30 0 8 0 0 0.5 30
ci 30 0 8

ケース1のように円が接っしている場合、点が作成されないようで
す。また、ケース2の場合、先に楕円を選択した場合はうまくいく
のですが、円を先に選択すると、交点の位置がずれてしまいます。

アルゴリズムを理解するには、やはり実際に自分で外部変形を作っ
てみるのが一番良いので、「Lite & Seen Lite」を参考にしながら
私版のものを作ってみました。楕円と楕円の交点を求める場合の考
え方もまとめてみましたので、興味のある方は覗いてみて下さい。

http://homepage2.nifty.com/igus/starthp/kouten/kouten.html

楕円を扱う場合には軸角分回転させたり、扁平率を掛けたりという
作業が必要になるのですが、ruby の場合 matrix を使ってベクト
ル・行列計算させると楽にできます。

ところで、今回の場合は点を交点に向って収束させたのですが、エ
レガントに厳密解を一発で求めるような方法はあるのでしょうか?

--
sugi


Indexへ
(10173)←【10175】→(10176)
------------------------
【タイトル】Re(1):楕円と楕円の交点
【記事番号】 10175 (10173)
【 日時 】07/08/20 23:44
【 発言者 】Kazuo Miyake qqza3hq89@aioros.ocn.ne.jp

▼sugiさん:
>sugiです。皆さん、こんにちは。
>
>siegelさんのBBSで楕円と楕円の交点を求める話題があり、三宅
>さんの「Lite & Seen Lite」の「282ci_inters.bat」を紹介させて
>頂きました。
>
>siegelさんのBBS
>http://www.interz.net/ssbbs/sr3_bbss.cgi?cat=481siegel
>
>三宅さんの「Lite & Seen Lite」
>http://www17.ocn.ne.jp/~lite/indexx.html
>
>jww の標準機能なら右クリック一発なんですが、改めて考えるとな
>かなか難しいです。
>
>どうやって楕円と楕円の交点を求めているのかと思い、三宅さんの
>スクリプトを調べていたのですが、その過程で動作がおかしくなる
>ケースを見つけたので、こちらでバグ報告をさせてもらいます。
>
># 細かいツッコミなんですが。^^;
>
>まず、形状を座標ファイルから形状を読み込んでください。
>
># ケース1
>ci 0 0 5
>ci 10 0 5
># ケース2
>ci 30 0 8 0 0 0.5 30
>ci 30 0 8
>
>ケース1のように円が接っしている場合、点が作成されないようで
>す。また、ケース2の場合、先に楕円を選択した場合はうまくいく
>のですが、円を先に選択すると、交点の位置がずれてしまいます。
>
>アルゴリズムを理解するには、やはり実際に自分で外部変形を作っ
>てみるのが一番良いので、「Lite & Seen Lite」を参考にしながら
>私版のものを作ってみました。楕円と楕円の交点を求める場合の考
>え方もまとめてみましたので、興味のある方は覗いてみて下さい。
>
>http://homepage2.nifty.com/igus/starthp/kouten/kouten.html
>
>楕円を扱う場合には軸角分回転させたり、扁平率を掛けたりという
>作業が必要になるのですが、ruby の場合 matrix を使ってベクト
>ル・行列計算させると楽にできます。
>
>ところで、今回の場合は点を交点に向って収束させたのですが、エ
>レガントに厳密解を一発で求めるような方法はあるのでしょうか?
>
>--
>sugi

楕円と楕円の交点の計算は プログラムチェックがかなりお粗末な
ようで申し訳けありません。

Lite & Seen Lite は 外部変形プログラマーのための プログラム
の アイデアを提案させて頂いているつもりでおります。
sugi さん の matrix ライブラリを利用したテクニックは 簡単な
ようでなかなか真似のできないものですね。

楕円と楕円の交点のプログラムは エレガンスではありませんが 精
度よく計算できます。計算法は、エレガンスな手法ではないかもし
れません。

バグの件ですが よりよく改良されたものがあれば 逆にそれを 取
り込みたいくらいです。

とにもかくにも sugi さんのプログラムテクニックに有難うと申し
あげます。


Indexへ
(10175)←【10176】→(10178)
------------------------
【タイトル】Re(2):楕円と楕円の交点
【記事番号】 10176 (10175)
【 日時 】07/08/21 00:40
【 発言者 】hayabusa

Miyakeさん、こんばんは。

楕円に関してはトラウマというのでしょうか
何故か敬遠しがちですがMiyakeさんの考察によりJw_cad
外部変形に於いても充分に扱いうるものである事が
よく解ります。

円円交点について代数的な解法との話がありますが
非線形方程式で表現されるものは基本的に数学に
於いても未解決の分野と記憶していますが・・
しかし、Miyakeさんの手法に代表される数値計算で可能と
なった事は大きな成果だと思います。

今後の更なるご活躍を期待しています。


Indexへ
(10176)←【10178】//(10177)
------------------------
【タイトル】Re(3):楕円と楕円の交点
【記事番号】 10178 (10176)
【 日時 】07/08/21 22:50
【 発言者 】sugi

sugiです。みなさん、こんにちは。

Miyake さん wrote:
> 楕円と楕円の交点のプログラムは エレガンスではありませんが
> 精度よく計算できます。計算法は、エレガンスな手法ではないか
> もしれません。

最初は線の交点を求める時みたいに、連立方程式を解けば求めるこ
とができるんじゃないかなどと甘く考えていたのですが、うまく解
けそうにありませんでした。

接線を利用して交点に収束させるという三宅さんの方法は、効率的
に収束できそうで、なるほどと思いましたが、どこかにもっと簡単
に求める方法があるんじゃないかという気もしてました。

精度的には十分満足で、実用には問題ないと思います。

hayabusa さん wrote:
> 円円交点について代数的な解法との話がありますが
> 非線形方程式で表現されるものは基本的に数学に
> 於いても未解決の分野と記憶していますが・・
> しかし、Miyakeさんの手法に代表される数値計算で可能と
> なった事は大きな成果だと思います。

そうですね。:)

CADで作図して求める場合は簡単なんですが、いざ計算しようと
するとすごく難問だったりします。jww は内部ですごい計算をして
るんだということに改めて気づかされます。

--
sugi