用最少数量的矩形覆盖凹面多边形

时间:2012-08-21 17:01:59

标签: computational-geometry combinatorics

我想要覆盖一个带有最小矩形的简单凹面多边形。我的矩形可以是任何长度,但它们具有最大宽度,并且多边形将永远不会具有锐角。

我想过尝试将凹面多边形分解为三角形,这些三角形产生一组最小重叠的矩形,最小化每个三角形,然后将这些矩形合并为更大的矩形。但是,我不认为这适用于多边形边缘的小凹口。由这些凹口上的反射顶点创建的三角形将创建错误的矩形。我正在寻找跨越/忽略缺口的矩形。

我对计算几何学一无所知,所以我不确定如何开始提问。

我发现其他帖子类似,但不是我需要的内容:

一些例子:黑色是输入。红色是可接受的输出。

enter image description here

另一个例子:第二个输出是首选。但是,生成两个输出并使用另一个因子来确定偏好可能是必要的,而不是此算法的责任。

enter image description here

enter image description here

模仿曲线的多边形非常罕见。在这种情况下,矩形的大部分区域都被浪费了。但是,这是可以接受的,因为每个矩形都遵循最大宽度约束。

enter image description here

另外,我发现这篇文章接近我的需要:

也许更好的问题是"如何识别凹多边形的矩形部分?" enter image description here

这是显示所需实施的图像: enter image description here

绿色是实际的材料用量。红色矩形是布局。蓝色是整个多边形的MBR。我想我应该尝试获得小MBR并填充它们。左上角的2-3个绿色矩形终止于多边形的中间是昂贵的。这就是我想要最小化的。绿色矩形具有最小和最大宽度和高度,但我可以使用覆盖区域所需的尽可能多的行和列。同样,我必须尽量减少不跨越输入的矩形数量。我也可以修改绿色矩形的形状,以适应非常昂贵的小地方。换句话说,尽可能多地获得尽可能多的矩形是理想的。

也许我应该只是尝试识别这样的矩形区域: enter image description here

或者,或许更好的方法是使用最大内切矩形而不是MBR。我可以使用矩形不断地向下切割多边形,直到我留下区域,最大内切矩形不与原始多边形共享边缘。其余区域必须采用启发式方法处理。

enter image description here

我一直在与我公司的工程和制造部门合作,为这个问题带来更多的澄清。我还在等待确认,但我现在正在考虑一种能够返回最大内切矩形集合的算法。虽然它没有完全覆盖形状,但它会优先考虑正交区域,而将非正交区域留给某些启发式区域。唯一的技巧是最大化这些正交区域。

0 个答案:

没有答案