求兩圓交集的面積

2021-09-11 17:58:31 字數 597 閱讀 6089

設圓c1 半徑為r1 面積為s1 圓cr 半徑為 r2 面積為s2 圓心距離為d

兩圓的交集有3種情況 :

1:兩圓交面積為0的情況 即 d>=r1+r2 

2:小圓內含含於大圓的情況 即 max(r1,r2) >= d+min(r1,r2)

3:兩圓相交的情況 即 d < r1+r2 且 d > max(r1,r2)

對於第一種情況 交集面積為0

對於第二種情況 交集面積為min(s1,s2)

對於第三種情況 首先圓心c1和圓心c2連線兩圓的兩個交點 所以分別構成兩個扇形s1,s2和乙個四邊形s3

如圖所示

交集面積 s = s1+s2-s3

其中s1 = 2*pi*r1*r1*(a1/2*pi) = a1*r1*r1

a1可有餘弦定理得 a1 = acos((r1*r1+d*d-r2*r2)/(2*r1*d))

同理s2也可求得

因為s3可分割為上下兩個全等三角形

所謂s3 = 2*r1*d*sin(a1)/2 = r1*d*sin(a1)

兩圓相交求相交面積

1.海 式 2.余弦公式cosa public double areaofintersectionofcircles int firstx,int firsty,int firstr,int secondx,int secondy,int secondr alpha math.acos d d fi...

HDU 3264 求兩圓相交的面積

此題意很簡單,思路也容易想到。但是我就是卡在了求兩圓相交求面積的地方。還好現在有了模板了。不說了,直接貼 還得多多總結,二分真的很好用,要學會用啊!include include include includeusing namespace std define inf 2147483647 def...

模版 兩圓相交部分面積

題目 poj 2546 circular area 題意 計算兩圓公共部分面積 260k 0ms g 提交wa,c 提交ac o o include include include include include include using namespace std const double ep...