小编kar*_*aru的帖子

找到N个矩形重叠的有效方法

我试图找到一个有效的解决方案,找到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)

python algorithm computational-geometry

11
推荐指数
2
解决办法
6191
查看次数

标签 统计

algorithm ×1

computational-geometry ×1

python ×1