c++ - 在真实 3D 环境(例如建筑物)中寻路

标签 c++ algorithm 3d graph-algorithm path-finding

是否有一种寻路算法也适用于真实的 3D 环境,例如具有多个楼梯等的真实建筑物。C++ 库或开放式实现会很棒 ;-) 我看到的一种解决方案是 Djikstra,但我想知道是否有更优化的解决方案。 普通 A* 不会比 Djikstra 更好,因为距离启发式算法效果不佳(位于目的地上方一层)。 我目前正在考虑的另一个解决方案是将 3d 环境映射到 2d 图上。因此,如果有一些可用的 C++ 实现/库以这种方式进行,它也会有所帮助。

最佳答案

如果路径必须考虑穿越障碍物的能力(即运动是空间中已知体积的某个实体的运动),那么我建议查看有关机器人运动规划的文献。配置空间的概念允许您处理姿势变化以应对障碍。看 Jean-Claude Latombe 的经典教科书

对于更简单的场景,您可以使用第一人称电脑游戏中使用的路径规划算法,类似于 Dijkstra,A* (example)

关于c++ - 在真实 3D 环境(例如建筑物)中寻路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10177424/

相关文章:

c++ - 递归反转没有全局变量的链表

php - 检测匹配的高效算法

javascript - Three.js 使用 raycaster intersectObjects 忽略被遮挡的对象

javascript - 如何获取两个字符串之间的变化(插入、删除或相同)?

c++ - 添加变换后 DirectX 9 不渲染

java - 如何在2D平面上投影3D?

c++ - 使用代码块编译和运行无限循环

c++ - 从对象返回静态大小的数组的最简洁的代码方式是什么?

c++ - 如何在 C++ 中读取和比较 .jpeg 文件中的单个字节?

algorithm - 使用多边形的中点是否始终适用于 Painter 的 HSR 算法?