GitHub - applelee/a-plus: 基于javascript的 A*寻路算法 · GitHub
Skip to content

applelee/a-plus

Folders and files

Repository files navigation

说明

基于javascript的A*算法例子,可用于获取两点之间的最短距离。

DEMO运行起来

example/a+.html 文件扔浏览器

引入APlus

引用

<script src='/lib/APlus.js'></script>

APlus API

创建实例 instance

new APlus(options)

var aPlus = new APlus({
  screenSize: [col, row],
  // ...
})

APlus.create(options)

var aPlus = APlus.create({
  screenSize: [col, row],
  // ...
})

实例的方法 method

instance.run void

参数1 options
参数2 callback 返回一个对象包含三个属性 path最短路径,sovled探索过的矢量集合,branchs探索过的路径集合

aPlus.run(options, ({ path, solved, branchs }) => {})

instance.getPath array

获取最短路径
参数1 startVector 起点矢量
参数2 endVector 终点矢量

aPlus.getPath(startVector, endVector)

instance.getSolved array

获取探索过的矢量集合
参数1 startVector 起点矢量
参数2 endVector 终点矢量

aPlus.getSolved(startVector, endVector)

instance.getBranchs array

获取探索过的所有路径
参数1 startVector 起点矢量
参数2 endVector 终点矢量

aPlus.getBranchs(startVector, endVector)

options配置及初始值

  // 可配置项
  let options = {
    // 是true为穷举法,false为贪心算法
    isExhaustive: false,
    // 当路径无解时是否返回近似的解
    isMustPath: false,
    // 查询类型
    starSearch: false,
    // 开始矢量
    startVector: [0, 0],
    // 终点矢量
    endVector: [1, 1],
    // 场景大小 width height
    screenSize: [1, 1],
    // 障碍矢量集合
    obstacles: [],
  }

License

MIT

About

基于javascript的 A*寻路算法

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors