【问题标题】:Generate Graph of Connected Convex Polygons生成连通凸多边形图
【发布时间】:2011-01-20 21:29:36
【问题描述】:

我正在尝试获取诸如this 之类的密集点图,并将其转换为连接的凸多边形图。多边形应尽可能大且尽可能简单,同时保持连接。结果图将用于寻路。谁能指出我正确的方向?

【问题讨论】:

  • 我无法想象以前没有人问过这个问题。请先搜索 SO,这可能会给您一些想法。或者,您可以通过解释为什么找到的解决方案不符合您的要求来更好地表述您的问题。
  • 看起来有点像星际地图...
  • 这正是星际争霸地图。这是他们导航网格的自上而下视图,设置为用作 2D 碰撞地图。我可以通过使用势场来避免局部碰撞,但我需要一个真正的寻路解决方案来避免局部最优。本质上我需要凸多边形,这样我就可以使用共享边的中点来寻路。三角形也可以,但会产生更多点。

标签: algorithm graph-theory path-finding convex-polygon


【解决方案1】:

我不能发布链接非常烦人。很难成为一个潜伏者和偶尔的参与者。

我最终使用了以下技术:

首先,创建一个距离变换。我使用了此处描述的算法[无法链接],得到了这样的图像[无法链接]。然后,创建 DT 的分水岭变换以将其划分为多个区域。这需要一些工作,但目前看起来像这样 [无法链接] 然后,使用连接每对区域的折线的中点,创建一个航点图。

Result

分水岭划分还不完美,请注意导致条带化的混叠,但我最终得到了这张 128x128 地图的 181 个区域和 281 个航点。

【讨论】:

    【解决方案2】:

    这不是您要求的,但这里有一些解决此 2D 路径规划问题的其他想法:

    • 使用 A*。这会产生最短的无碰撞路径。即使不简化位图,性能也可能还不错。

    • 使用sampling-based roadmap。这是不同于多边形的另一种离散表示。由于您的搜索空间很小,您可以遍历整个位图以验证每个点都可以连接到路线图。如果紧凑路线图很重要(但短路径不重要),则可以使用visibility roadmap 技术。

    由于无论如何您都必须处理图形表示和图形搜索,这些技术似乎比多边形提取容易得多。我为这个问题挖了一些 SO 问题:

    当空间已被多边形映射(可能使用工具)时,可以将其拆分为凸多边形或其他可以搜索的表示。 LaValle 也讨论了这一点:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2012-08-04
      • 1970-01-01
      • 2011-05-09
      • 2020-11-02
      • 1970-01-01
      相关资源
      最近更新 更多