[英]How to list all points in the union of rectangles
如果我们通过其左上角和右下角定义一个矩形(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))
但是我有很多矩形,这可能是非常低效的。 例如,假设所有矩形几乎相同。 有这么快的方法吗?
我同意StoryTeller,但我认为最好更详细地写一下,所以即使我们这些英语能力差的人也能理解
计算最小矩形,它是要测试的所有矩形的重叠区域
仅针对这个新矩形(x1,y1,x2,y2)测试所有点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.