一直線上にない任意の3点が与えられれば、その3点を通る円を求めることができます。
ここでは、任意の3点を通る円の中心座標と半径を求める方法を2種類の方法で紹介します。
なお、以下では、円の方程式を、
とし、点が円の中心点の座標、が半径とします。
また、任意の3点の座標をそれぞれ とします。
1.連立方程式から求める方法
任意の3点の座標を円の方程式に代入すると、
となります。ここで、
第1式-第2式とすると
となり、第2式-第3式とすると
となります。
この両式を展開すると、の2次の項が消え、
となります。
あとは、一次方程式としてを求めることができます。
が求まれば、円の方程式に代入して、半径も求めることができます。
(以下の式展開は省略します)
2.幾何学的に求める方法
1.による方法で求めるのでもいいのですが、幾何学的に求めると非常に簡単に求められるので、まとめておきます。
円と任意の3点の関係が下記のようになっていると仮定します。
ここで、円周上の2点を結ぶ線分の中点を通り、この線分に垂直な直線を考えると、この直線は必ず円の中心Cを通過していることを使います。
線分について考えると、同じ円周上の点であるので、これらの線分の長さは半径に等しくになります。すると、△は二等辺三角形になります。二等辺三角形の底辺を2等分した点Eと残りの頂点Cを結ぶ直線は、底辺に垂直になることからわかります。
そこで、の中点をE、の中点をFとすると、 直線CEと直線CFの交点が円の中心となります。
これを具体的に計算して求めればOKです。
点Eおよび点Fの座標をとおき、円の中心を通る座標軸に平行な直線から直線CE、CFまでの反時計回りに求めた角度をとします。
したがって、直線CEと直線CFの方程式は、それぞれ、が直線の傾きを表していることから、
ここで、
となります。
これより、交点を求めるために、それぞれの式に点Eおよび点Fの座標を代入して、
を消せば、
と求められます。
一方、は、
となり、円の半径は、
と求めることができます。
なお、角度は、
としても求められます。
ちなみに、円弧の間の角度をとすると、これはベクトルおよびベクトルの内積を用いて、
より、
と求めることができます。
この計算手順のとおりにプログラムを書けば、3点を通る円の中心と半径を求めることができます。