`

如何在MONO 3D寻找最短路路径

阅读更多

前段时间有个客户说他们想在我们的3D的机房中找从A点到B点的最短路径,然而在2D中确实有很多成熟的寻路算法,其中A*是最为常见的,而这个Demo也是用的A*算法,以下计算的是从左上角到右下角的最短路径:
左上
具体的实现方式是,先将地板进行了分割,分成一个数组,然后再计算该点上是否有3D的对象,若是有,就置成该点不能通过的标记,否则就表示该点可以通过(如果你分割的越细那么算的就越精确,但是算的当然也就慢一些,关键看你的要求),以下是分割地板的代码:

1 var size = {x: 100, y: 100}; // 100*100
2 var topLeft = {x: 228, y: 53};
3 var width = 524;
4 var height = 400;
5 var dw = width / size.x;
6 var dh = height / size.y;
7 var start;
8 var end;
9 var graph;
10 function to2d() {
11     var nodes = [];
12     for (var i = 0; i < size.x; i++) {
13         var nodeRow = [];
14         var x = topLeft.x + dw * i
15         for (var j = 0; j < size.y; j++) {
16             var y = topLeft.y + dh * j;
17             if (isHasObj(x, y)) { //判断该点上是否有物体
18                 nodeRow.push(0);
19             else {
20                 nodeRow.push(1);
21             }
22         }
23         nodes.push(nodeRow);
24     }
25     graph = new Graph(nodes, {
26         closest: null,
27         diagonal: false
28     });
29  
30     //这里是找一条从(0,0)到(79,80)的路径。
31     start = graph.grid[0][0];
32     drawPath(7980);
33 }

分享到:
评论

相关推荐

    unity3d读取xml插件Mono.Xml

    unity3d读取xml插件Mono.Xml,用于读取xml文件

    Mono环境winform开发

    Mono环境winform开发,可在windows操作系统和Linux操作系统下运行,需提前下载Mono部署环境

    Mono6.4.0(MAC)

    此指南针对MacOS,没有更改安装路径操作方法(文件太大故此放到百度网盘中,如被和谐,可邮箱联系我) 检查是否安装成功 /Library/Frameworks/Mono.framework/Versions/版本号/bin/mozroots --import —sync 打开....

    Unity3D中Mono.Xml和XmlParser的使用

    这是我做的关于Mono.Xml和XmlParser的源码例子,你只需更改下里面Xml文件的路径即可,虽然这个Demo是在.net中控制台下进行测试的,但移植到Unity3D中简直是易如反掌,轻而易举

    docker的mono镜像

    在docker的mono镜像中加入一些基本命令包,方便开发(公司内网有些不能下)。有需求的直接下载,同时不需要再到仓库龟速下载了。送上安装命令: docker load -i mono.tar

    Mono3D:“单目视频单声道化”的源代码(SIGGRAPH Asia 2020)

    [] [ ] [] Mono3D是将双目视频单声道化为具有隐式编码的立体声信息的常规单眼视频的实现,从而可以高质量地恢复原始的双目视频。在线演示 环境请参考 。数据集由于版权问题,我们无法发布整个3D电影数据集。 但是...

    mono脫離.net framework 運行的框架示例,

    此测试项目我在纯净的虚拟机和本机均测试过,但有个bug,mono对中文路径支持不好,如若有中文路径,则无法运行。我后来又试了用C:\Program Files\Mono-1.9.1\bin\mono.exe来执行,则没有中文路径问题。我觉得缺少了...

    【Dnspy】Unity-debugging相关mono补丁

    dnspy的unity相关mono补丁

    DotNet框架技术及mono总结

    Microsoft.Net和Mono.Net,并不是“同一个.Net”,它毕竟是“两套不同的.Net”。虽然这两套.Net之间绝大多数特性是可互相兼容、可互相移植的,但依然有一些特性,要么是Microsoft.Net具备而Mono.Net不具备,例如WPF...

    mono for Android API

    各种mono API,包含mono for Android API

    Unity Mono虚拟机改写 读取自定义位置的dll实现c#更新

    请先下载Unity版本对应的mono虚拟机,然后找到Image.c这个文件。覆盖之。

    Xamarin Mono For Android

    个人总结的Xamarin Mono For Android详细安装方法及资源下载路径

    Reactor教程Mono和Flux例子

    Reactor教程Mono和Flux例子,同时可以查看我的博客,有介绍如何使用Reactor的详细教程

    mono-design 组合体3D模型

    mono-design 3D 模型 json格式,不会导的不要下哦

    mono-design-v2.1.3

    Mono Design 是Twaver一款web端设计工具。Mono Design不仅可以是用Editor快速创建3D机房,而且也可以使用代码创建3D产品。此资源是Twaver提供的一款试用产品

    VINS-Mono详解.pdf

    VINS-Mono详解.pdf

    mono+sqlite

    sqlite所需的dll。。。。。。 包括sqlite3.dll,mono.data.sqlite,system.data,mono.data.sqliteclient

Global site tag (gtag.js) - Google Analytics