从上图中我们可以看出,从白色的开始点出发,A* 算法搜索了开始点附近的所有节点并沿着离目标点最近的节点找到了一条可达路径.当 A* 算法找到目标点后,他就通过回溯父节点的方式来重建路径....HPA
分层寻路会将原始地图预处理成一张更低层级的地图,其中原始地图会被分为多个簇(块),这些簇之间的距离和最优路径会被预先计算并缓存起来.实际寻路时,首先在更低层级的地图上(即簇之间)进行寻路,然后,...(开放)列表中添加这个节点(因为这个节点在扩展其他节点时会被评估是否要加到开放列表中)....代码写到这里,我们就已经准备好进行 while 循环了,我们会使用节点指针来进行循环操作并检查这些节点指针是否已经在开放列表或者关闭列表中.
?...:遍历列表以检查某一节点是否存在.代码的其他部分和一般的 A* 算法没有什么区别,值得一提的一点是,如果我们找到了一条到某一节点更短的路径,我们需要重新设置该节点的父节点.
?