BStarFindPath
欢迎了解BStar寻路算法
BStar算法归于人工智能或人工生命一类,是让对象呈现出拥有生命一般,朝着目标点移动并绕开障碍物,如果目标点被障碍物包围则停留在附近点。
想象空间
可以将BStar寻路想象成一个朝目标前进的贪吃蛇,如果遇到障碍就会分裂成2条贪吃蛇,一左一右绕开障碍,绕开障碍后继续向目标点移动,只要有一条蛇到达目标点即寻路结束。
这里我们需要三类蛇来满足我们的设计需求:
- 自由蛇(向目标点前进,遇到障碍会分裂成左转蛇和右转蛇)
- 左转蛇(只考虑绕着障碍左转,一直到绕出障碍变成自由蛇或者遇到已经绕过的路消失)
- 右转蛇(只考虑绕着障碍右转,一直到绕出障碍变成自由蛇或者遇到已经绕过的路消失)
可以想象在复杂的地形下,会出现很多蛇,最终先到终点的蛇就是我们要找的路径。
下图只有自由蛇 (2N - 10N) N代表自由蛇
下图开始是自由蛇(2N-5N)撞墙后变成了左转蛇和右转蛇绕开障碍,绕开后变成自由蛇奔向终点。
BStar寻路的优势
目标点在封闭空间内时,BStar效率优势明显
目标点在需要绕路的空间内时,BStar效率优势明显