• 締切済み
※ ChatGPTを利用し、要約された質問です(原文:2点を通り1円に接する接円の生成法について)

2点を通り1円に接する接円の生成法について

このQ&Aのポイント
  • 2点の座標と1円の中心座標・半径が与えられた時、2点を通り、1円に接する円(内接円、外接円)の中心座標・半径を数値的に求める方法について教えてください。
  • プログラムでこのような接円の座標等を生成する方法を知りたいです。プログラミング可能な数値計算法があれば教えてください。
  • よろしくお願いします。

みんなの回答

noname#230359
noname#230359
回答No.12

(9)ukiya さんの回答を見ていてイメージがわいてきました。 2点がある円の内側にある場合 2つの円の中心座標間の距離は「R-r」となり、 (9)の回答が正しくなるような気がします。 2点がある円の外側にある場合。 2つの円は互いに外接となり、2つの円の中心座標間の距離は「R+r」となると思います。 よって2点が円外にある場合は下記のとおりにならないでしょうか? (X-X1)^2+(Y-Y1)^2=R^2・・・? (X-X2)^2+(Y-Y2)^2=R^2・・・? (X-X3)^2+(Y-Y3)^2=(R+r)^2・・・? また、1点がある円の外、1点が内の場合は2点を通る円は存在しないと思います。 上記が正しいとすれば 解の求め方 定数がX1、Y1、X2、Y2、r         変数がX、Y、R 3つの変数すべて2次の項が含まれています。 3元2次方程式は厄介なので 展開し、 式? ?引く? 式? ?引く? 式? ?引く? と各式について引き算をし、2次の項を完全に消すことが可能です。 ?~?の3元一次方程式として解けばスムーズです。 3元一次方程式は行列式を用いれば簡単にプログラム化が可能です。 どなたかコメント願います。

noname#230359
noname#230359
回答No.11

N0.9さんのご提示の式で公式化は可能ですよ。 それも困難ではありません。是非試みられてください。

noname#230359
noname#230359
回答No.10

参考です。 弊社は、このような幾何演算ライブラリーを開発しております。 http://www.pml.co.jp/ghl/index-J.html (株)PML 長谷川

noname#230359
noname#230359
回答No.9

2点の座標を(X1,Y1),(X2,Y2)とし、1円の中心座標を(X3,Y3),半径をrとします。2点を通り1円に接する円の中心座標を(X,Y)半径をRとすると、次の関係が成立します。 (X-X1)^2+(Y-Y1)^2=R^2 (X-X2)^2+(Y-Y2)^2=R^2 (X-X3)^2+(Y-Y3)^2=(R-r)^2 この連立方程式をとくことによって答えが得られると思います。 2次方程式の根の公式によって、接円の有無や数(1or2)が分かると思います。

noname#230359
noname#230359
回答No.8

下記URLで質問した方が確実かと思われます http://www.asahi-net.or.jp/~xc8t-tkd/

参考URL:
http://www.asahi-net.or.jp/~xc8t-tkd/
noname#230359
noname#230359
回答No.7

参考までに、回答(6)の?の条件では円は存在しません。 プログラミングでは、条件を考慮する必要がありますが 作図方法自体はそれ程難しくありません。 (作図の例をUPしましたので参考にして下さい) 但し、前にも書きましたが基本的なプログラムが出来ないと描けません。 その場合は、計算式の載っている参考書籍をご紹介しますので回答に書いてください。 ファイルは、回答後の日数が経過したので削除いたしました。 再度アップしましたが、数日で削除いたします。 プログラムの参考書籍は、下記になります。 Visual BasicによるCG ISBN:4782851464 218p 21cm(A5) 産業図書 (1998-04-01出版) 少し古いですが、入手可能なようです。 掲載されているプログラムですが、開発言語によってはそのまま書き直しても不具合が発生する式も(接線関連で)ありますので注意してください。

参考URL:
http://nctool.jp/sakuzu.jpg
noname#230358
質問者

お礼

度々、御回答ありがとう御座います。 作図例の方ですが、只今確認した所、404エラーで閲覧不能と表示されました。 お手数をお掛けしますが、作図例の再アップロードをお願い出来ますでしょうか。 また、重ね重ね申し訳ないですが、参考書籍の方のご紹介をお願い致します。

noname#230359
noname#230359
回答No.6

基本的には下記2から5のとおりだと思います。 もしどうしてもプログラミング可能な計算法が必要であれば、趣味でやってみます。 3種の場合分けが必要だと思います。 2点を通り、ある円に接する円は2つしかないと思います。 ? 2点両方ががある円の内側にある場合、2つとも内接円です。(もしかしたら、外接円もあるかもしれません。その場合は2つ以上と言うことになります。) ? 2点がある円の外側にある場合、1つは内接円、1つは外接円です。 ? 2点の内1点がある円の内側にありもう一つが外側にある場合、 よくわかりません。確かめる必要があります。 結構難しい問題だと思います。

noname#230358
質問者

お礼

迅速な回答ありがとうございます。 プログラミング可能な計算法に関しては、出来ればご協力をお願い致します。 勿論、私自身もプログラミング可能な計算法を考えてみます。

noname#230359
noname#230359
回答No.5

図形作図ハンドブックと言う本に答えがあります。 出版社: ソフトバンククリエイティブ ASIN: 4797318910 計算式のプログラムは乗っていませんが、作図の基礎が全て載っていますので参考になるかと思います。 CADプログラミングをされている方ならご自分の計算式を組み合わせて作成できると思いますが 3点を通る円の作成、1点を通り円に接す直線など基本的なプログラムが出来なければ本を見ても簡単には出来ません。 >出来ればプログラミング可能な数値計算法を示して頂けるとあり難いです。 内接、外接、例外などのを考慮しなければ、それ程でもありませんが それでも、一発で出る計算式ではありません。

noname#230358
質問者

お礼

迅速な回答ありがとうございます。 参考書籍の方を購入し、検討する事に致します。 プログラムの方は、CADプログラミングではありませんが、趣味で打っていますので、手法さえ理解できれば、形になるとは思います。 御回答ありがとうございます。

noname#230359
noname#230359
回答No.4

 このご質問は、2点の座標が円に対してどの位置に存在するかによって 回答や判断が分かれると思います。  私は先ず、この質問を見て任意の1円と2点を描き、CADで作図して みました。最初のイメージでは、内接円・外接円共に作図可能でした。 これは、円に対して2点の座標が円外で、尚且つ、円の中心座標を基準と して2点が同一か隣り合う象限にあり、2点を結ぶ直線が円と交わらない という設定条件です。  しかしながら、2点の座標が円の内側にあれば内接円しか描けません。 また、2点の座標が円外の場合でも、2点を結ぶ直線が円と交わっていれば 外接円しか描けません。  もう少し具体的な条件をいただくことが必要かと思いますが、連立方程式 を使った証明問題?みたいになると思います。  蛇足ですが、計算式はどうしても必要ですか?。 内接円・外接円の連続軌跡を求めたいとか、膨大な数の接円座標&半径の 算出が必要であれば計算式を得るメリットは大きいですが、求めるアウト プット数や頻度が少なければ、あれこれ悩むよりもCADで作図した方が 手っ取り早くて、賢明だと思います。  それと、一つのサイズの製品で1円の中心座標と2点それぞれの座標を 結ぶ三角形が形を変え、内接円・外接円の半径も中心座標もケース毎に変 わるという想定が考え難いので、基本となる円の中心座標の周りを同一半径 の内接円・外接円が等距離で回転する円軌道を求めたいだけ(座標中心点間 を結ぶ三角形は形を変えない)か、それとも製品のサイズ別に計算したいと いうようなことでしょうか?。

noname#230358
質問者

補足

迅速な御回答ありがとうございます。 求める計算式の利用方法についてですが、自動で自由曲線(有理B-spline)を連続した円弧曲線に近似する為に使用する予定で御座います。 手動であれば、現状でも生成は可能です。 ですが、その手法は自由曲線上に膨大な数の点を打ち、初めに3点を通る円を作成後、1円に接し2点を通る円を点が無くなるまで延々と作成するという、時間と手間が非常に掛かる作業となっています。 その為、この作業を自動化できないかと考えた時、一部のCADソフトでは、2点を通り1円に接する円(内接円、外接円)の生成が可能である為、数値的に求める事が可能ではないかと思い、今回質問をした次第で御座います。

noname#230359
noname#230359
回答No.3

回答2は、 その通りでござる。 回答1は無視して下さい。