2011-02-12 28 views
1

我有一个(不一定是凸的)多边形。我想找到一组占据世界范围((0,0)到(100,100))所有空间的矩形,而不占用多边形内的任何空间。找到这些多边形最简单的方法是什么?有这种事情的算法吗?将多边形分解为“内部”和“外部”

谢谢!

例如,多边形

__ __ 
| |__| | 
|________| 

可能被打破在以下五个矩形:

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

,或者,以下六个矩形:

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

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

+0

你可能想看看在这个问题上并编辑了一点 - 现在它没有多大意义。 – Beta 2011-02-12 22:22:29

回答

0

我可以搜集的所有信息:这是可能的,但不切实际(特别是如果你的多边形有斜线)。我不需要这个回答任何更多的,但我想,该算法将类似于以下内容:

  • 使用三角形进行垂直或水平
  • 使用四个矩形切多边形的所有边缘出尽可能多的空间,你可以在上/下/左/右
    • 现在你留下了一个只有垂直/水平边缘,延伸到每一个边境
  • 贪婪地放置多边形最大的矩形,你可以在最大的洞里S IN造型
    • 查找双方之间的最大差距
  • 填写步骤1中的三角形到一个终端精密