我有两个矩形,每个矩形有 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/