求俩圆交叉部分面积 java实现demo

import static java.lang.StrictMath.acos;
import static java.lang.StrictMath.sin;

/**
 * @author sun
 * @date 2018/1/31 14:41
 */
public class Demo {
    public static void main(String args[]) {
        // 俩圆半径
        double r1=10; double r2=20;
        //俩圆心之间距离
        double d=Math.sqrt(10*10+20*20);
        double ang1=acos((r1*r1+d*d-r2*r2)/(2*r1*d));
        double ang2=acos((r2*r2+d*d-r1*r1)/(2*r2*d));
        //俩圆交叉部分面积
        System.out.println(ang1*r1*r1 + ang2*r2*r2 - r1*d*sin(ang1));
    }
}

猜你喜欢

转载自blog.csdn.net/wenxingchen/article/details/79217392