- ベストアンサー
三角形の外接円の中心座標を求めるプログラム
三点の座標(x1,y1),(x2,y2),(x3,y3)が与えられたときに、三角形の外接円の中心座標と半径を求めるプログラムが欲しいです。 垂直二等分線の交点を求めるやり方は既に知っているのですが、連立方程式になってしまいます。 ですので出来ればこれを一発で求められる連立じゃない式が欲しいのですが、ご存じないでしょうか? x = 何とか y = 何とか みたいな感じです。 Javaでやろうとしていますが、計算式さえわかれば自分で書けると思うので、中心座標のx,yを求める式を教えて下さい。 過去質問を探してみましたが、みんな連立方程式で解けば良いとおっしゃっていまして…
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
地道に解いた結果をもちいれば良いと思います。 中心を(p,q)とおくと (x-p)^2+(y-q)^2=R^2 に(x1,y1),(x2,y2),(x3,y3)を代入して (x1-p)^2+(y1-q)^2=R^2 (1) (x2-p)^2+(y2-q)^2=R^2 (2) (x3-p)^2+(y3-q)^2=R^2 (3) (1)-(2) (x1-p)^2-(x2-p)^2+(y1-q)^2-(y2-q)^2=0 (x1-x2)(x1+x2-2p) + (y1-y2)(y1+y2-2q)=0 -2(x1-x2)p -2(y1-y2)q +x1^2 -x2^2 +y1^2 -y2^2 =0 (1)-(3) -2(x1-x3)p -2(y1-y3)q +x1^2 -x3^2 +y1^2 -y3^2 =0 p = {(y1-y3)(y1^2 -y2^2 +x1^2 -x2^2) +(y1-y2)(y1^2 -y3^2 +x1^2 -x3^2)} / {2(y1-y3)(x1-x2)+2(y1-y2)(x1-x3)} q = {(x1-x3)(x1^2 -x2^2 +y1^2 -y2^2) +(x1-x2)(x1^2 -x3^2 +y1^2 -y3^2)} / {2(x1-x3)(y1-y2)+2(x1-x2)(y1-y3)} とかなり複雑な式になりました。 計算がどこかで間違っているかもしれませんが、残念ながらあまり美しくはなりませんね。
お礼
ありがとうございます! 手で計算してみたら、符号が一部逆でして p = {(y1-y3)(y1^2 -y2^2 +x1^2 -x2^2) -(y1-y2)(y1^2 -y3^2 +x1^2 -x3^2)} / {2(y1-y3)(x1-x2)-2(y1-y2)(x1-x3)} q = {(x1-x3)(x1^2 -x2^2 +y1^2 -y2^2) -(x1-x2)(x1^2 -x3^2 +y1^2 -y3^2)} / {2(x1-x3)(y1-y2)-2(x1-x2)(y1-y3)} でうまくいきました!どうもありがとうございます!