一个用来可视化最短路算法的小工具.
dijkstra: ![]() |
A*: ![]() |
flow-field: ![]() |
LPA*: ![]() |
先确保已安装 conan, 然后执行以下来安装依赖:
make install然后构建:
make configure
make build接下来, 查看帮助:
./build/path-finding-visualizer --help
一个运行 A* 算法的例子:
./build/path-finding-visualizer --start 6,1 --target 6,14 astar
目前支持的算法:
dijkstradijkstra-bi(双向 dijkstra)astar(A*算法)astar-bi(双向A*算法)flow-field简单的流场寻路lpastar(LPA*算法, 一种增量计算的A*算法, Lifelong Planning A* )
- 按下
ESC或者Ctrl-C来退出. - 按下
Ctrl-S来手动截图, 会保存在screenshots目录, 也可以用--enable-screenshot来对每一帧自动截图 (会自动在找到最短路后及时退出自动截图, 免得截图太多). - 单击鼠标左键, 来翻转一个地图方格(成为障碍物或者消去障碍物), 引起重新计算 (
lpastar支持增量寻路, 不会全部重算). - 单击鼠标右键, 变更起始点 (
flow-field流场可以在目标不变的情况下, 直接计算多个出发点的路径).
- 地图规格
12x15, 0 表示空白, 1 表示障碍物 - 地图文件默认在当前目录
map.txt - 默认是支持 8 个方向移动 (使用选项
-d4来只使用四个方向). - 代价: 水平和垂直方向移动消耗
10, 对角方向移动消耗14(根号2 倍).
- 黑色: 障碍物
- 浅蓝色: 待扩展的方格, 也常叫做
open_list,open_set, 或者优先级队列中的元素 - 深蓝色: 已经探索过的方格 (也常叫做
closed_list,closed_set, visited 数组) - 绿色: 起点, 终点都是绿色. 探索到的最短路径是绿色
- 红色边框: 鼠标修改过此位置
字体 Arrows.ttf 来自 https://www.dafont.com/arrows.font.



