2 つの円が重なった部分の面積を求めます。重なりは 2 つの弓形を貼り合わせた形なので、それぞれの扇形から三角形を引いて足し合わせます。共通弦の長さもあわせて出します。
2 つの円が部分的に重なると、レンズのような形ができます。この面積は、それぞれの円から切り取られた弓形を 2 つ貼り合わせたものです。
S=r12θ1+r22θ2−21(−d+r1+r2)(d+r1−r2)(d−r1+r2)(d+r1+r2) θ1=arccos2dr1d2+r12−r22θ2=arccos2dr2d2+r22−r12 - r1、r2 はそれぞれの円の半径
- d は中心間の距離
- θ1、θ2 はそれぞれの中心から見た、共通弦までの角(半分)
角は余弦定理から出ます。2 つの中心と、円が交わる点の 1 つを結ぶと三角形ができ、その 3 辺は r1、r2、d です。この三角形の角がそのまま θ1、θ2 になります。
最後に引いている平方根は、この三角形の面積の 4 倍です。ヘロンの公式を展開した形になっています。扇形を 2 つ足すと三角形の部分を二重に数えてしまうので、そのぶんを引いています。
例
既定の入力で見てみます。半径 5 と 4 の円が、中心を 6 だけ離して置かれています。
θ1 は arccos(45÷60) でおよそ 0.7227、θ2 は arccos(27÷48) でおよそ 0.9728 です(単位はラジアン)。
25×0.7227 がおよそ 18.0683、16×0.9728 がおよそ 15.5647、平方根の項の半分がおよそ 19.8431 です。足し引きして、重なりの面積はおよそ 13.7995 になります。
共通弦の長さはおよそ 6.6144 です。小さいほうの円の面積はおよそ 50.2655 ですから、その 27.45% ほどが重なっていることになります。
3 つの場合
中心が離れすぎていると、2 円は重なりません。d が r1+r2 以上のときで、面積は 0 になります。ちょうど等しいときは外側で接するだけなので、やはり 0 です。
逆に中心が近すぎると、小さいほうの円がすっぽり入ります。d が半径の差以下のときで、重なりは小さいほうの円そのものになります。このとき交わる点はないので、共通弦は 0 と返します。
その中間でだけ、上の式を使います。電波やセンサーの届く範囲がどれだけ重なっているか、といった場面で使う計算です。