Advertisement

计算几何中求两圆重叠区域的面积(运用余弦定理)

阅读量:

计算两个圆相交区域的面积
需注意π的表示方式:建议采用公式形式表达,否则可能因精度不足导致持续出现错误

复制代码
    #include<bits/stdc++.h>  
    
    using namespace std;  
    #define PI acos(-1)  
    int main()  
    {  
    int T;  
    double x1,x2,y1,y2,r1,r2;  
    double a,b,s1,s2,d,sum;  
    cin >> T;  
    while(T--)  
    {  
        sum = 0;  
        cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;  
        d = sqrt( (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) );  
        if(r1 + r2 <= d)  
            puts("0.00");  
        else if(r2 >= r1 && d + r1 <= r2)  
        {  
            printf("%.2lf\n", PI * r1 * r1);  
        }   

全部评论 (0)

还没有任何评论哟~