简单 JAVA编程题 判断两个圆是否相交 圆心1坐标X=1 Y=1 半径 1 圆心2 坐标为 X=2 Y=2 半径 2

如题所述

public class Circle_J {
public static void main(String[] args){
System.out.println("请依次输入第一个圆的圆心坐标x和y以及半径,彼此以空格隔开");
Scanner read = new Scanner(System.in);
String string1 = String.valueOf(read.nextLine());
String[] data1 = string1.split(" ");

System.out.println("请依次输入第二个圆的圆心坐标x和y以及半径,彼此以空格隔开");
String string2 = String.valueOf(read.nextLine());
String[] data2 = string2.split(" ");

double xDistance = Math.abs(Integer.parseInt(data2[0])-Integer.parseInt(data1[0]));
double yDistance = Math.abs(Integer.parseInt(data2[1])-Integer.parseInt(data1[1]));
double rCount =Integer.parseInt(data2[2]) +Integer.parseInt(data1[2]);
if((Math.pow(xDistance,2)+Math.pow(xDistance,2))<=(Math.pow(rCount,2)))
{
System.out.println(Math.pow(rCount,2));
System.out.println("相交");
}else{
System.out.println("不相交");
}
read.close();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-27
简单的判断两个圆心的距离是否大于两个圆的半径之和可以判断是否相交。
第2个回答  2011-09-27
public class Panduan {

/**
* @param args
*/
public static void main(String[] args) {

pan(1,2,1,2,1,2);

}

public static void pan(int x1,int y1,int x2,int y2,int r1,int r2)
{
if(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))==(r1+r2))
{
System.out.println("相切");
}
if(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))<(r1+r2))
{
System.out.println("相离");
}
if(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))>(r1+r2))
{
System.out.println("相交");
}
}

}本回答被提问者采纳
第3个回答  2011-09-27
相交