将多边形分解为“内部”和“外部”

时间:2011-02-12 22:19:55

标签: geometry

我有一个(不一定是凸面的)多边形。我想找到一组占据世界范围((0,0)到(100,100))所有空间的矩形,而不占用多边形内的任何空间。找到这些多边形最简单的方法是什么?是否存在针对此类事情的算法?

谢谢!

例如,多边形

 __    __
|  |__|  |
|________|

可以分成以下五个矩形:

aaabbbbbbbbbbeee
aaa|  |cc|  |eee
aaa|________|eee
aaaddddddddddeee

或者,以下六个矩形:

aaaaaaabbccccccc
eee|  |bb|  |ddd
eee|________|ddd
ffffffffffffffff

是否有一种简单的方法可以将多边形分解为多边形和世界边界之间的矩形?

1 个答案:

答案 0 :(得分:0)

我可以收集的全部内容:这可能但不切实际(特别是如果您的多边形有斜线)。我不再需要这个答案,但我想这个算法看起来像下面这样:

  • 使用三角形使多边形的所有边都垂直或水平
  • 使用四个矩形在顶部/底部/左/右切出尽可能多的空间
    • 现在你剩下一个只有垂直/水平边缘并且延伸到每个边界的多边形
  • 贪婪地将最大的矩形放在形状中最大的孔中
    • 寻找双方之间最大的差距
  • 将步骤1中的三角形填充到终端精度