基于javascript的A*算法例子,可用于获取两点之间的最短距离。
example/a+.html 文件扔浏览器
<script src='/lib/APlus.js'></script>new APlus(options)
var aPlus = new APlus({
screenSize: [col, row],
// ...
})APlus.create(options)
var aPlus = APlus.create({
screenSize: [col, row],
// ...
})参数1 options
参数2 callback 返回一个对象包含三个属性 path最短路径,sovled探索过的矢量集合,branchs探索过的路径集合
aPlus.run(options, ({ path, solved, branchs }) => {})获取最短路径
参数1 startVector 起点矢量
参数2 endVector 终点矢量
aPlus.getPath(startVector, endVector)获取探索过的矢量集合
参数1 startVector 起点矢量
参数2 endVector 终点矢量
aPlus.getSolved(startVector, endVector)获取探索过的所有路径
参数1 startVector 起点矢量
参数2 endVector 终点矢量
aPlus.getBranchs(startVector, endVector) // 可配置项
let options = {
// 是true为穷举法,false为贪心算法
isExhaustive: false,
// 当路径无解时是否返回近似的解
isMustPath: false,
// 查询类型
starSearch: false,
// 开始矢量
startVector: [0, 0],
// 终点矢量
endVector: [1, 1],
// 场景大小 width height
screenSize: [1, 1],
// 障碍矢量集合
obstacles: [],
}MIT
