参考了这篇文章,写的,画的都很好
一句话总结:
从起始节点开始,找他四周节点的最小F值节点,然后以他为中心,再去四周找最小F值节点,一路找下去,最后,当你发现终点就在最小F值节点四周时,就可以停了。
详细分析:
1、首先,我们将起始节点作为当前节点,将其放到封闭列表中,将四周(除去障碍物)的节点放到开放列表中,并且让他们都指向当前节点,此时当前节点的身份也是父节点身份。(为啥要这样呢?这就是人家的算法嘛)
2、计算开放列表中各个节点的F、G、H值(F = G + H),选出开放列表中F值最小的节点,作为当前节点
3、第2步又选出了当前节点,然后就该重复第1步了
特殊要处理的地方只有一处,对于已经在开放列表中的节点,则计算从当前节点到这些节点的G值是否更小(因为之前的G值是从他的父节点到他之间计算出来的),如果更小,则将这种节点的父节点设置为当前节点(就是说换了自己的“父亲”)
4、最后将父节点身份的节点串起来,就是你想要的路径啦!