对非交叉多边形进行直线化

时间:2011-12-07 15:20:41

标签: algorithm geometry polygon computational-geometry

我有一些不相交的多边形,我需要将其“平方”,以便所有角度都是90度角。

有一个很好的算法吗?

修改

在得到的多边形中允许自相交,我正在寻找在原始多边形中细分矩形块的“最佳”方法。矩形可以跨越多边形的原始边缘,目标是将大多数矩形直接拟合到多边形中。

2 个答案:

答案 0 :(得分:0)

您可以使用类似于原始边的“阶梯”替换多边形的每一边,如下所示:

sawtooth algorithm output

您添加到每个楼梯的“步数”越多,它就越接近原始形状。

答案 1 :(得分:0)

如果每个原始细分仅允许一个新细分,则无法保证可以避免自相交。

您可以使用四叉树细分线段,直到每个线段在其四叉树单元格中单独存在(或者您可以进一步细分直到达到某个近似比率)。然后用其边界框的两个线段替换每个线段。

HTH