首先这道题的要求不是很好,他要求的是判定第二个矩形是在第一个矩形内,还是和第一个矩形内或者没有任何交集。也就是相离,相交和包含着三种关系。我这题的意思是证明两个矩形之间的关系。本来想使用点与点之间的距离来解决问题,但是发现不能完全解决,所以换了一种方法。代码如下 package nameyu; import java.util.Scanner; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); System.out.print("Enter r1's center x-,y-coordinates,width,and height:"); double r1_xCoordinates=input.nextDouble(); double r1_yCoordinates=input.nextDouble(); double r1_width=input.nextDouble(); double r1_height=input.nextDouble(); System.out.print("Enter r2's center x-,y-coordinates,width,and height:"); double r2_xCoordinates=input.nextDouble(); double r2_yCoordinates=input.nextDouble(); double r2_width=input.nextDouble(); double r2_height=input.nextDouble();// double dis=Math.sqrt(Math.pow((r2_xCoordinates-r1_xCoordinates), 2)+Math.pow((r2_yCoordinates-r1_yCoordinates), 2)); //两点之间的距离计算公式 if(Math.abs(r1_xCoordinates-r2_xCoordinates)>(r1_width/2+r2_width/2)&&Math.abs(r1_yCoordinates-r2_yCoordinates)>(r1_height/2+r2_height/2)){ System.out.println("相离"); }else if(Math.abs(r1_xCoordinates-r2_xCoordinates)<=(Math.abs(r1_width-r2_width))*0.5&&Math.abs(r1_yCoordinates-r2_yCoordinates)<=(Math.abs(r1_height-r2_height))*0.5){ System.out.println("包含"); }else System.out.println("相交"); } }
|