java判断两圆是否相交以及相交的面积大小.public class Circle { double _x; double _y; double _r; Color _c; Circle(double x,double y,double r,Color c){ _x=x; _y=y; _r=r; _c=c; } void edgeColo
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 07:57:53
java判断两圆是否相交以及相交的面积大小.public class Circle { double _x; double _y; double _r; Color _c; Circle(double x,double y,double r,Color c){ _x=x; _y=y; _r=r; _c=c; } void edgeColo
java判断两圆是否相交以及相交的面积大小.
public class Circle {
double _x;
double _y;
double _r;
Color _c;
Circle(double x,double y,double r,Color c){
_x=x;
_y=y;
_r=r;
_c=c; }
void edgeColor(){
cpDraw.setPenColor(_c); /*这个cpDraw是库中添加的一个jav包中的函数
cpDraw.Circle(_x, _y, _r); *目前只使用过其中几个函数其他功能不详……*/
};
void filledColor(Color fc){
cpDraw.setPenColor(fc);
cpDraw.FilledCircle(_x, _y, _r
);
}
double Area()
{
return Math.PI*_r*_r;
}
以上有Circle函数及求面积的函数,刚刚学JAVA的菜鸟请教各位大大判断两圆相交和相交面积的函数如何写,谢谢~越简单的越好,花哨了看不明白……
java判断两圆是否相交以及相交的面积大小.public class Circle { double _x; double _y; double _r; Color _c; Circle(double x,double y,double r,Color c){ _x=x; _y=y; _r=r; _c=c; } void edgeColo
boolean isIntersecting(Circle c){
return Math.sqrt((_x-c._x)*(_x-c._x)+(_y-c._y)*(_y-c._y))_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;
}