Java检查两个矩形是否在任何点重叠

标签 java math selection shapes contain

我有多个矩形和一个特殊矩形:选择矩形。 我想检查每个矩形是否包含至少一个位于选择矩形内的点。 为了清楚起见,这是一张图片:

Selection example

最佳答案

背景:

一个矩形只能由它的对角线之一定义。
假设第一个矩形的对角线是 (x1, y1) 到 (x2, y2)
而另一个矩形的对角线是 (x3, y3) 到 (x4, y4)

Sample

进行:

现在,如果这 4 个条件中的任何一个为真,我们可以断定矩形不重叠:

  1. x3 > x2(或)
  2. y3 > y2(或)
  3. x1 > x4(或)
  4. y1 > y4


否则,它们会重叠!

enter image description here

或者:

如果矩形重叠

(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/

相关文章:

java - OpenShift Java - 使用数据目录中的图像

python - Python 样条曲线(使用控制节点和端点)

vba - Excel VBA 选择 - 更好的代码

java - 使用 PixelMed 解析 DICOM header

java - Java 中的泛型和参数化类型

java - 数学问题(在一个循环内增加和减少两个变量)

c++ - 如何在保持最小距离的情况下沿有限线随机采样?

javascript - Codemirror 中的垂直(或 block )选择

javascript - 在 Internet Explorer 中设置文本区域选择

java - 在 map reduce spark 的设置键值对中插入一个 if 循环