我试图采用诸如this的点的密集图形,并将其变成连接的凸多边形的图形。在保持连接的同时,多边形应该尽可能大且尽可能简单。结果图将用于寻路。任何人都可以将我指向正确的方向吗?生成连接的凸多边形的图形
1
A
回答
1
这是很烦人的,我不能发布链接。使其很难成为一名潜伏者&偶尔参与者。
我结束了使用以下技术:
首先,创建一个距离变换。我用这里描述的算法[无法链接],导致像这样的图像[无法链接]。然后,创建DT的分水岭变换以将其分区。这需要一些工作,但目前看起来像这样[无法链接]然后,使用连接每对区域的多段线的中点来创建航点图。
分水岭划分尚不完善,需要注意的混杂造成绑扎,但我最终的181个区和281个航路点这个128x128的地图。
0
这不是你问什么,但这里有一些其他的想法解决这个二维路径规划问题:
使用*。这产生了最短的无碰撞路径。即使没有简化位图,性能也可能正常。
使用sampling-based roadmap。这是另一个离散的表示,而不是多边形。由于您的搜索空间很小,您可以遍历整个位图以验证每个点都可以连接到路线图。如果紧凑型路线图很重要(但短路径不重要),则可以使用visibility roadmap技术。
既然你要处理反正图表示和图搜索,这些技术似乎比多边形提取容易得多。我挖出该问题的一些SO问题:
当空间已经由多边形(可能使用的工具)映射,它可以分割成凸多边形或可以搜索的一些其他表示。这也由拉瓦列讨论:
相关问题
- 1. 从矩形生成凸多边形
- 2. 如何生成随机凸多边形?
- 3. 凸多边形,图形算法
- 4. 多边形C++的凸性?
- 5. 凸3D多边形对象
- 6. Python:最小凸多边形?
- 7. 形成一个凸多边形的算法
- 8. 将凹多边形分解为凸多边形
- 9. 在一些小凸多边形中细分一般多边形
- 10. OpenGL中的轮廓非凸多边形
- 11. Cuda中的凸多边形算法?
- 12. Hausdorff凸多边形之间的距离
- 13. 生成二维多边形的斜边
- 14. 围绕2D多边形生成Voronoi图
- 15. 如何生成多边形图表
- 16. 主成分分析双标图与凸多边形
- 17. 生成多边形从图像中(填充的形状)
- 18. 的Java2D:填一个凸起的圆形多边形(QuadCurves)
- 19. 获得由Voronoi线段形成的凸多边形集合的最快方法
- 20. 非凸多边形 - 使用凸包算法的预处理
- 21. 展开填充凸多边形
- 22. 如何生成多边形的拇指?
- 23. 找到两个凸多边形之间的接触点
- 24. 如何使用metapost生成多边形数字图形?
- 25. 图书馆/数据结构存储带孔的凸多边形
- 26. 在凹/凸多边形内部查找有界矩形
- 27. 图形中的凸凹 - Mathematica
- 28. 生成图形的图片/图形
- 29. 如何XYZ点连接到三角形的多边形
- 30. 从多边形生成纹理(openGL)
我无法想象这之前没有问过。请先搜索一下,这可能会给你一些想法。或者你可以通过解释为什么找到的解决方案不符合你的要求来更好地制定你的问题。 – 2011-01-20 21:35:22
看起来像星际争霸的地图... –
这完全是一个星际争霸地图。它是导航网格的自顶向下视图,可用作2D碰撞图的设置。我可以通过使用潜在字段来避免局部冲突,但是我需要一个真正的寻路解决方案来避免局部最优。 本质上我需要凸多边形,以便我可以使用共享边的中点来查找路径。三角形也会起作用,但会产生更多的观点。 – Anthony