编程求两个圆相交部分面积

编程:知道两个圆的半径和圆心(两个圆大小不一样),求两个圆的相交部分的面积,说一下编程思路,求解答... 编程:知道两个圆的半径和圆心(两个圆大小不一样),求两个圆的相交部分的面积,说一下编程思路,求解答 展开
 我来答
让猫飞一会儿
推荐于2017-11-27 · TA获得超过1119个赞
知道小有建树答主
回答量:540
采纳率:80%
帮助的人:270万
展开全部
boolean isIntersecting(Circle c){
return Math.sqrt((_x-c._x)*(_x-c._x)+(_y-c._y)*(_y-c._y))<=_r+c._r;
}
double sharedArea(Circle c){
double alpha,area;
double d=Math.sqrt((_x-c._x)*(_x-c._x)+(_y-c._y)*(_y-c._y));//两圆心距离
if(d>_r+c._r){
return 0;
}
alpha=Math.acos((d*d+_r*_r-c._r*c._r)/(2*d*_r));//余弦定理取得相交弧所对本圆的圆心角
area=alpha*_r*_r;//本圆扇形面积
alpha=Math.acos((d*d+c._r*c._r-_r*_r)/(2*d*c._r));//余弦定理取得相交弧所对另一圆的圆心角
area+=alpha*c._r*c._r;//另一圆的扇形面积
double s=(d+_r+c._r)/2;//海伦公式之s
area-=Math.sqrt(s*(s-d)*(s-_r)*(s-c._r))*2;//两扇形面积减去两三角形面积即为交集
return area;
}
匿名用户
2015-01-17
展开全部
还要给出圆心坐标是不?

你要列出来两个圆的关系,然后分别处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式