答案家

 找回密码
 立即注册
查看: 746|回复: 0

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

[复制链接]

1万

主题

1万

帖子

80万

积分

校长

Rank: 9Rank: 9Rank: 9

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


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

CopyRight(c)2016 www.daanjia.com All Rights Reserved. 本站部份资源由网友发布上传提供,如果侵犯了您的版权,请来信告知,我们将在5个工作日内处理。
快速回复 返回顶部 返回列表