poj2546
来源:互联网 发布:javaweb就业前景 知乎 编辑:程序博客网 时间:2024/06/03 19:16
裸的 两圆相交求面积。
设两圆心分别为o1、o2,交点为a、b,则所求面积=是s1(o1弧ab)+s2(o2弧ab)-s3(四边形o1o2ab)。
#include<stdio.h>#include<math.h>#include<iostream>#include<algorithm>using namespace std;#define PI 3.1415926535897932384626433832795struct point{ double x,y,r;}a,b;double dis(point a,point b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}double interarea(point a,point b){ double d=dis(a,b); if(d>=a.r+b.r)return 0; double r=a.r>b.r?b.r:a.r; if(d<=fabs(a.r-b.r))return PI*r*r; double angle1=acos((a.r*a.r+d*d-b.r*b.r)/2.0/a.r/d); double angle2=acos((b.r*b.r+d*d-a.r*a.r)/2.0/b.r/d); double ans=0; ans-=d*a.r*sin(angle1); ans+=angle1*a.r*a.r+angle2*b.r*b.r; return ans;}int main(){ while(scanf("%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&a.r,&b.x,&b.y,&b.r)!=EOF) { double area=interarea(a,b); printf("%.3lf\n",area); } return 0;}
- poj2546
- POJ2546
- 饭卡(poj2546,贪心+背包)
- 【poj2546】 Circular Area
- poj2546 求两个圆相交的面积
- poj2546—Circular Area(两圆相交面积)
- 集合框架
- 记录自己的成长
- TableLayoutPanel控件动态删除一行,贴出来分享一下
- Android第三方jar包NoClassDefFoundError错误
- 新浪微博寻找新大陆:2012成失去的一年
- poj2546
- find_next_zero_bit 函数解析
- Visual Basic 和 C 之间传递数组的方式
- 内散列,外散列,以及带溢出表的散列的实现及性能分析
- hadoop配置文件说明
- java.lang.IllegalStateException: No wrapped connection.
- 11g归档模式记录
- 明明白白AOP
- ubuntu下把当前路径增加到动态库的搜索地址中