java 矩形重叠问题_怎样判断两个矩形是否重叠,需要考虑矩形边与坐标轴不重合的情况?...

注意,矩形可以由两个坐标表示,即左上角和右下角。所以主要是给我们以下四个坐标。

可以假定矩形与坐标轴平行。

一种解决方案是一个接一个地选取一个矩形的所有点,查看该点是否在另一个矩形内。这可以使用此处

以下是一种更简单的方法。如果满足以下条件之一,则两个矩形不重叠。

1)一个矩形位于另一个矩形的上边缘上方。

2)一个矩形位于另一矩形左边缘的左侧。

我们需要检查上述情况,以确定给定的矩形是否重叠。以下是上述方法的实现。

// Java program

class GFG {

static class Point {

int x, y;

}

// Returns true if two rectangles (l1, r1) and (l2, r2) overlap

static boolean doOverlap(Point l1, Point r1, Point l2, Point r2) {

// If one rectangle is on left side of other

if (l1.x > r2.x || l2.x > r1.x) {

return false;

}

// If one rectangle is above other

if (l1.y < r2.y || l2.y < r1.y) {

return false;

}

return true;

}

/* Driver program to test above function */

public static void main(String[] args) {

Point l1 = new Point(),r1 = new Point(),

l2 = new Point(),r2 = new Point();

l1.x=0;l1.y=10; r1.x=10;r1.y=0;

l2.x=5;l2.y=5; r2.x=15;r2.y=0;

if (doOverlap(l1, r1, l2, r2)) {

System.out.println("Rectangles Overlap");

} else {

System.out.println("Rectangles Don't Overlap");

}

}

}

如果两个给定的矩形重叠,则返回true。l1

r1:第一个矩形的右下角坐标。

l2:第二个矩形的左上坐标。

:第二个矩形的右下角坐标。

l1:第一个矩形的左上坐标。

r1:第一个矩形的右下角坐标。

l2

r

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值