问题:给定两个圆的半径以及圆心的位置,求两个圆的相交区域的面积
思路 :利用圆心距判断 两个圆之间的位置关系
当圆心距小于两圆半径之差时 两圆内含
当圆心距等于两圆半径之差时 两圆内切
当圆心距小于两圆半径之和 大于半径之差时 两圆相交
当圆心距等于两圆半径之和时 两圆外切
当圆心距大于两圆半径之和时 两圆外离
分三种情况讨论:
假设半径小的圆为c1,半径大的圆为c2。
c1的半径r1,圆心坐标(x1,y1)。c2的半径r2,圆心坐标(x2,y2)。
d为两圆圆心连线的长度。
相交面积为S
d=sqrt((x1-x2)^2+(y1-y2)^2)
(1)如果r1+r2<=d
那么两圆相离,相交面积S=0
(2)如果r2-r1>=d
那么半径小的圆内含半径大的圆,那么相交面积为小圆的面积S=pi*r1*r1
(3)既非(1)也非(2)
在图上画两个相交圆,结合图像看。
那么两圆相交,连接小圆的圆心与两个圆的交点,连接大圆的圆心和两个圆的交点。
可以发现形成的图形被两个圆心的连线平分成2个全等三角形。
由小圆圆心和交点所连两条线(长度为半径)以及在大圆之内的弧所形成的扇形为S1
由大圆圆心和交点所连两条线(长度为半径)以及在小圆之内的弧所形成的扇形为S2
由小圆圆心和交点所连两条线以及由大圆圆心和交点所连两条线所形成的四边形的面积为S3
可见相交面积S=S1+S2-S3