我有多个矩形和一个特殊矩形:选择矩形。 我想检查每个矩形是否包含至少一个位于选择矩形内的点。 为了清楚起见,这是一张图片:
最佳答案
背景:
一个矩形只能由它的对角线之一定义。
假设第一个矩形的对角线是 (x1, y1) 到 (x2, y2)
而另一个矩形的对角线是 (x3, y3) 到 (x4, y4)
进行:
现在,如果这 4 个条件中的任何一个为真,我们可以断定矩形不重叠:
- x3 > x2(或)
- y3 > y2(或)
- x1 > x4(或)
- y1 > y4
否则,它们会重叠!
或者:
如果矩形重叠
(x1 < x4) && (x3 < x2) && (y1 < y4) && (y3 < y2)
Leetcode 上的示例解决方案:
https://leetcode.com/problems/rectangle-overlap/discuss/468548/Java-check-if-two-rectangles-overlap-at-any-point
关于Java检查两个矩形是否在任何点重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23302698/