設圓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...