- ベストアンサー
2点と半径から、中心座標と円弧を描く方法
標記件、以下を満足させる式はどのように導けばよろしいでしょうか?ご教示下さい。 (INPUT) ・始点と終点の2点のXY座標 ・半径r (OUTPUT) ・中心点座標 ・2点を結ぶ円弧の関数 なお、中心点と円弧は2つ出来るかと思いますが、どちらでも結構です。判別基準があれば教えて頂きたく。 どうぞよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.1 さんのご回答における代数的な部分を、若干修正します。 与えられた2点を A(a_1, b_1), B(a_2, b_2) とします。 求める円の中心の座標は (x - a_1)^2 + (y - b_1)^2 = r^2 (x - a_2)^2 + (y - b_2)^2 = r^2 ...なる連立方程式の解として求まります。 その解は2組あり、それを P(p_1, q_1), Q(p_2, q_2) とすると、求める円弧の式は (x - p_1)^2 + (y - q_1)^2 = r^2 (x - p_2)^2 + (y - q_2)^2 = r^2 ...の様になるはずです(実際には、これらの各々に、各点P、Qが直線ABに関してどちら側にあるかに関して定まる不等式を連立させることになりますが)。
その他の回答 (3)
- dig88
- ベストアンサー率33% (5/15)
#2で投稿した者です。 (3)の表現が間違っていることに気付きました。 (3)円弧を左周りに作画すると決めましたから 弦の中点から垂線を 、 ベクトルAをベクトル始点で 90度回した方向に長さh伸ばしたのが小円弧中心で マイナス90度回した方向に長さh伸ばしたのが 大円弧中心です。 この中点から伸びるベクトルをBとします。 やっぱり、変な表現です。 すみません。
- dig88
- ベストアンサー率33% (5/15)
たぶん、中学生の数学ではなく、 PCなどで作画するためのプログラムだと思いましたので、 そのように概略をアドバイスします。 円弧は左周りで作画するものとします。 (1)始点を原点として終点のベクトルA(弦)を作ります。 (2)弦の中点を通り円中心点に至る垂線の長さhを求めます。 h=SQRT(R^2-(|A|/)^2) (3)円弧を左周りに作画すると決めましたから 弦の中点から垂線を 、 ベクトルAを90度回した方向で長さh伸ばしたのが大円弧中心で マイナス90度回した方向で長さh伸ばしたのが小円弧中心です。 この中点から伸びるベクトルをBとします。 (4)ベクトルAを半分にしたものにベクトルBを加え 始点座標を加えたものが円中心の絶対座標点です。 (5)円中心点から始点へ伸びるベクトルCを作ります。 円中心点から終点へ伸びるベクトルDを作ります。 (6)ベクトルCを適当な量でプラス方向へ回転させて ベクトルDに到達するまで繰返します。 円中心座標とベクトルCを加えれば打点の絶対座標値です。 平面座標系の回転計算は複素平面を使うほうが便利です。 i(虚数)を乗算すれば90度回転し、 マイナスiを乗算すればマイナス90度回転します。 分かり難い説明ですみません。 方法はまだいろいろあります。 「計算幾何学」と表題がついた本を参照してください。
お礼
ご回答ありがとうございました。 複素平面ですね。 ご教示頂き、大変助かります。
- fjnobu
- ベストアンサー率21% (491/2332)
幾何学では、始点から半径r円と終点から半径rの円を描きその交点の2つが中心。 代数学では、x1^2+y1^2=r^2とx2^2+y2^2=r^2を解いた2点が中心です。 いずれも、2点が出ます。始点と終点が同じなら、半径rの円上が全ての求める点です。
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。 いろいろやってみましたが、 最初の2式をそれぞれXとYで微分すると、 2つの原点座標が出てきました。 (詳細はよく解っていませんが・・・^^;)
補足
すみません、微分で出てきた座標は間違いだったようです。。