計算兩個圓相交部分的面積

2021-06-27 02:00:58 字數 492 閱讀 5279

以下是直接封裝好的函式,六個引數,意思分別是第乙個圓的圓心,半徑,第二個圓的圓心,半徑,返回相交部分的面積,如果不相交,則返回零。

程式設計的時候直接複製貼上呼叫就行了,至於原理,就是兩個扇形的面積減去四邊形的面積。但是四邊形不一定是凸四邊形,所以我用到了凱**式,直接求面積,管它凸的還是凹的!扇形的圓心角不一定總是銳角,所以用到了餘弦定理,管它是正的還是負的。

double intersect(double x1,double y1,double r1,double x2,double y2,double r2)

else

ans=acos((r1*r1+l*l-r2*r2)/(2*r1*l))*r1*r1+acos((r2*r2+l*l-r1*r1)/(2*r2*l))*r2*r2-s;

} return ans;

}//六個引數,意思分別是第乙個圓的圓心,半徑,第二個圓的圓心,半徑,返回相交部分的面積,如果不相交,則返回零。

模版 兩圓相交部分面積

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

兩圓相交求相交面積

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

C 判斷兩個圓是否相交

定義乙個point類,其屬性包括點的座標,提供計算兩點之間距離的方法 定義乙個圓circle類,其屬性包括圓心和半徑 建立兩個圓形物件,提示使用者輸入,判斷兩圓是否相交。include include using namespace std class point double getdist co...