java判断两圆是否相交以及相交的面积大小。
publicclassCircle{double_x;double_y;double_r;Color_c;Circle(doublex,doubley,doubler,C...
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的菜鸟请教各位大大判断两圆相交和相交面积的函数如何写,谢谢~越简单的越好,花哨了看不明白…… 展开
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的菜鸟请教各位大大判断两圆相交和相交面积的函数如何写,谢谢~越简单的越好,花哨了看不明白…… 展开
展开全部
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;
}
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;
}
展开全部
呵呵 ,求面积可以用二个圆的面积可以用一个扇形的面积减去三角形面积X2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以判断两圆圆心的距离,如果距离大于两圆的半径之和,这两圆不相交,相反则相交;
求面积则有点麻烦,先求相交两点的夹角,分别求出该夹角对应扇形的面积,然后减去三角形的面积便是相交面积。
求面积则有点麻烦,先求相交两点的夹角,分别求出该夹角对应扇形的面积,然后减去三角形的面积便是相交面积。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询