如果我们(x1,y1), (x2,y2)
通过左上角和右下角定义一个矩形并假设所有点都是整数值,我想列出多个矩形联合中的所有点。
对于一个矩形,以下函数返回其中的所有点。
def findpoints(x1,y1,x2,y2):
return [(x,y) for x in xrange(x1,x2+1) for y in xrange(y1,y2+1)]
我可以通过以下方式找到两个矩形联合中的所有点,
set(findpoints(x1,y1,x2,y2)) | set(findpoints(x3,y3,x4,y4))
但是我有很多矩形,这可能非常低效。例如,想象一下所有矩形是否几乎相同。有没有一种快速的方法来做到这一点?