Python中的矩形重叠

假设有一个以列表[x1,y1,x2,y2]表示的矩形,其中(x1,y1)是其左下角的坐标,而(x2,y2)是其顶部的坐标,右上角。现在,如果两个矩形的相交区域为正,则它们会重叠。因此,我们可以理解,仅在角或边缘接触的两个矩形不重叠。

如果有两个(与轴对齐的)矩形,则必须检查它们是否重叠。

因此,如果输入类似于R1 = [0,0,2,2],R2 = [1,1,3,3],则输出将为True。

为了解决这个问题,我们将遵循以下步骤-

  • 如果R1 [0]> = R2 [2]或R1 [2] <= R2 [0]或R1 [3] <= R2 [1]或R1 [1]> = R2 [3],则

    • 返回False

  • 除此以外,

    • 返回True

让我们看下面的实现以更好地理解-

示例

class Solution:
   def isRectangleOverlap(self, R1, R2):
      if (R1[0]>=R2[2]) or (R1[2]<=R2[0]) or (R1[3]<=R2[1]) or
         (R1[1]>=R2[3]):
         return False
      else:
   return True
ob = Solution()print(ob.isRectangleOverlap([0,0,2,2],[1,1,3,3]))

输入值

[0,0,2,2],[1,1,3,3]

输出结果

True