【问题标题】:Breaking a polygon into "inside" and "outside"将多边形分解为“内部”和“外部”
【发布时间】:2011-02-12 22:19:55
【问题描述】:

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

谢谢!

例如多边形

 __    __
|  |__|  |
|________|

可以分成以下五个矩形:

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

或者,以下六个矩形:

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

有没有一种简单的方法可以将多边形分成多边形和世界边界之间的矩形?

【问题讨论】:

  • 你可能想看看这个问题并稍微编辑一下——现在它没有多大意义。
  • 在很多情况下这似乎是不可能的。例如,如果您有一个等边三角形,则没有有限数量的矩形可以占据三角形之外的所有空间。
  • 你能贴一些你想要的图片吗?
  • 您的问题听起来好像您只是希望能够找到一个点是否在 Poligon 之内或之外。请让你的意图更清楚。
  • @templatetypedef - 可以使用无限矩形。然后你丢弃所有小于某个阈值的值并得到一个合理的近似值,这可能是他正在寻找的。​​span>

标签: geometry


【解决方案1】:

我能收集到的所有信息:这是可能的,但不切实际(尤其是如果您的多边形有斜线)。我不再需要这个答案了,但我猜算法看起来像下面这样:

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

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2020-02-08
    • 2014-03-25
    相关资源
    最近更新 更多