我试图找到一个有效的解决方案,找到n个矩形的重叠,其中矩形存储在两个单独的列表中.我们正在寻找listA与矩形重叠的所有矩形listB(反之亦然).将第一个列表中的一个元素与第二个列表进行比较可能需要花费大量时间.我正在寻找一个有效的解决方案.
我有两个矩形列表
rect = Rectangle(10, 12, 56, 15)
rect2 = Rectangle(0, 0,1, 15)
rect3 = Rectangle (10, 12, 56, 15)
listA = [rect, rect2]
listB = [rect3]
Run Code Online (Sandbox Code Playgroud)
这是从类创建的:
import numpy as np
import itertools as it
class Rectangle(object):
def __init__(self, left, right, bottom, top):
self.left = left
self.bottom = right
self.right = bottom
self.top = top
def overlap(r1, r2):
hoverlaps = True
voverlaps = True
if (r1.left > r2.right) or (r1.right < r2.left):
hoverlaps = False …Run Code Online (Sandbox Code Playgroud)