微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

A-STAR 最短路径计算

程序名称:A-STAR

授权协议: GPL

操作系统: 跨平台

开发语言: JavaScript

A-STAR 介绍

A-STAR 寻找一种静态路网(本算法中为二维数组)中求解最短路径的解决办法

我们可以通过: var element = new Element();

来创建二维数组的一个节点。

element自身包含了一些方法

    element.setStatus(2);//设置节点的状态,当status>0,则该区域不可通过。
    element.getX();//获取节点在二维数组的横座标。
    element.getY();//获取节点在二维数组的纵座标。
    element.atLeft(target);//判断element是否在target的左边。
    其他方法见: element.js

下面我们初始化一个静态路网(二维数组)。

var row = col =20;
var elements = createElements(row, col, {
        afterCreate : function() {
            if (Math.random() * 10 > 9) {
                this.setStatus(3);  //设置一些节点的状态为3,即死节点
            }
        }
});
这样elements就是我们的静态路网。 createElements详见:createElements.js

获取两个节点之间的最短距离,startEl->endEl.

    var startEl = elements[1][1],endEl = elements[17][19];//假设这两个都是空节点
    var pathArray = getPath(startEl,endEl)[endEl];

pathArray则为startEl到endEl之间的有效节点数组。

demo: http://demo.qianshu.me/A-STAR/

A-STAR 官网

https://github.com/qianshu/astar

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐