zoukankan      html  css  js  c++  java
  • poj2546Circular Area(两圆相交面积)

    链接

    画图推公式 

    这两种情况 都可用一种公式算出来 就是两圆都求出圆心角 求出扇形的面积减掉三角形面积 

    #include <iostream>
    using namespace std;
    #include<cmath>
    #include<iomanip>
    #include<algorithm>
    int main()
    {
        double d,t,t1,s,x,y,xx,yy,r,rr;
        while(cin>>x>>y>>r)
        {
            cin>>xx>>yy>>rr;
            d=sqrt((x-xx)*(x-xx)+(y-yy)*(y-yy));
            if(d>=r+rr) s=0;
            else if(d<=fabs(r-rr)) s=min(acos(-1.0)*r*r,acos(-1.0)*rr*rr);
            else   
            {t=(r*r+d*d-rr*rr)/2.0/d;
            t1=sqrt(r*r-t*t);
            s=-d*t1+r*r*acos(t/r)+rr*rr*acos((d-t)/rr);
            }
            cout<<fixed<<setprecision(3)<<s<<endl;
        }
        return 0;
    } 
  • 相关阅读:
    抽象工厂模式
    外观模式
    策略模式
    状态模式
    观察者模式
    装饰者模式
    模板方法模式
    适配器模式
    中介者模式
    组合模式
  • 原文地址:https://www.cnblogs.com/shangyu/p/3874984.html
Copyright © 2011-2022 走看看