algorithm - 两个矩形相交

标签 algorithm math pseudocode shapes

我有两个矩形,每个矩形有 4 个值:

左侧位置 X,顶部位置 Y,宽度 W 和高度 H:

X1, Y1, H1, W1
X2, Y2, H2, W2

矩形不旋转,像这样:

+--------------------> X axis
|
|    (X,Y)      (X+W, Y)
|    +--------------+
|    |              |
|    |              |
|    |              |
|    +--------------+
v    (X, Y+H)     (X+W,Y+H)

Y axis

判断两个矩形的交集是否为空的最佳方案是什么?

最佳答案

if (X1+W1<X2 or X2+W2<X1 or Y1+H1<Y2 or Y2+H2<Y1):
    Intersection = Empty
else:
    Intersection = Not Empty

如果您有四个坐标 - ((X,Y),(A,B))((X1,Y1),(A1,B1)) – 而不是两个加上宽度和高度,它看起来像这样:

if (A<X1 or A1<X or B<Y1 or B1<Y):
    Intersection = Empty
else:
    Intersection = Not Empty

关于algorithm - 两个矩形相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390333/

相关文章:

c++ - 搜索集合数组的更快方法

java - 如何正确地将地理坐标转换为屏幕上的像素?

ruby - 掷 n 个骰子后得到特定和的概率。 ruby

algorithm - 冒泡排序伪代码 n-1 是什么意思?

python - 翻译伪代码回文

c# - 如何在图中找到最长路径

algorithm - 模拟许多粒子碰撞的有效方法?

math - 导弹、宇宙飞船的空间物理学 - 学习微积分版

algorithm - 根据给定的标准找到图中两个节点之间的路径 - 优化任务

javascript - 了解因式分解解决方案