【发布时间】:2013-04-24 15:13:38
【问题描述】:
我有许多水平和垂直线组成矩形,例如本例。
是否有一种算法或代码可以定位每个不包含另一个矩形的矩形。我的意思是,这张图片中最大的矩形不是我要找的矩形,因为它里面包含其他矩形。
我要查找的矩形必须是空的。我有每条线的起点和终点的列表,例如(a,b)到(c,d)。因此,我想要一个矩形列表 (x,y,w,h) 或等效项。
请注意,有些线与它们成直角相交,例如,此图像中最宽矩形的顶线是一条线,它有一条向下相交的垂直线。
【问题讨论】:
-
什么列表,比如
[((x1, y1), (x1, y2)), ((x1, y2), (x1, y3)), ((x1, y1), (x1, y3)), ...]? -
只需从任何白点用泛洪填充方法绘制您的区域。每个有 4 个角的区域都是所需的矩形。
-
它不是位图图像,我只有水平和垂直线的列表。没有洪水填充。不知道 y1, y2, y3 增加的列表是什么意思,我只需要一个矩形列表作为结果,但是它的表示。
-
对所有 x_i 进行排序并用整数索引对其进行枚举,对 y_i 执行相同操作。现在你有整数坐标!在位图上绘制所有线条。现在可以使用 Flood-fill。
标签: algorithm rectangles