标签:math


2 2 3 0 0 0 0 2 3 0 0 5 0
Case #1: 15.707963 Case #2: 2.250778
#include<stdio.h>
#include<math.h>
#define PI acos(-1.0)
double sum(double a1,double b1,double r1,double a2,double b2,double r2)
{
double A1,A2,s1,s2,s,d;
d=sqrt((a2-a1)*(a2-a1)+(b2-b1)*(b2-b1));
if(d>=r1+r2)
return 0.000;
else if(d<=fabs(r1-r2))
{
if(r1>r2)
return PI*r2*r2;
else
return PI*r1*r1;
}
else{
A1=2*acos((d*d+r1*r1-r2*r2)/(2*d*r1));
A2=2*acos((d*d+r2*r2-r1*r1)/(2*d*r2));
s1=0.5*r1*r1*sin(A1)+0.5*r2*r2*sin(A2);
s2=A1/2*r1*r1+A2/2*r2*r2;
s=s2-s1;
return s;
}
}
int main()
{
int t;
scanf("%d",&t);
for(int q=1;q<=t;q++)
{
double r1,r2,a1,a2,b1,b2;
scanf("%lf%lf%lf%lf%lf%lf",&r1,&r2,&a1,&b1,&a2,&b2);
printf("Case #%d: ",q);
printf("%.6lf\n",sum(a1,b1,r2,a2,b2,r2)-2*sum(a1,b1,r2,a2,b2,r1)+sum(a1,b1,r1,a2,b2,r1));
}
return 0;
}
版权声明:本文为博主原创文章,随便转载。
标签:math
原文地址:http://blog.csdn.net/luwhere/article/details/47686939