dポイントプレゼントキャンペーン実施中!

三点の座標(x1,y1),(x2,y2),(x3,y3)が与えられたときに、三角形の外接円の中心座標と半径を求めるプログラムが欲しいです。

垂直二等分線の交点を求めるやり方は既に知っているのですが、連立方程式になってしまいます。
ですので出来ればこれを一発で求められる連立じゃない式が欲しいのですが、ご存じないでしょうか?

x = 何とか
y = 何とか
みたいな感じです。

Javaでやろうとしていますが、計算式さえわかれば自分で書けると思うので、中心座標のx,yを求める式を教えて下さい。

過去質問を探してみましたが、みんな連立方程式で解けば良いとおっしゃっていまして…

A 回答 (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)}


とかなり複雑な式になりました。
計算がどこかで間違っているかもしれませんが、残念ながらあまり美しくはなりませんね。
    • good
    • 3
この回答へのお礼

ありがとうございます!
手で計算してみたら、符号が一部逆でして

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)}

でうまくいきました!どうもありがとうございます!

お礼日時:2011/11/07 08:43

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