liang183 发表于 2016-12-24 15:42:49

实现java判定第二个矩形是在第一个矩形内,还是和第一个矩形内或者没有任何交集

首先这道题的要求不是很好,他要求的是判定第二个矩形是在第一个矩形内,还是和第一个矩形内或者没有任何交集。也就是相离,相交和包含着三种关系。我这题的意思是证明两个矩形之间的关系。本来想使用点与点之间的距离来解决问题,但是发现不能完全解决,所以换了一种方法。代码如下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("相交");      }}

页: [1]
查看完整版本: 实现java判定第二个矩形是在第一个矩形内,还是和第一个矩形内或者没有任何交集