寻路算法:A*算法。

ops/2025/2/6 8:50:40/

在2D应用场景中,会出现寻找最短路径的情况。可以运用的算法很多,广度优先算法,曼哈顿算法等等。虽然可以最终访问到。但是为了节省性能,推荐使用A*算法

1.图示

2.基本原理

遍历一个点周围的点。看看那个点的寻路消耗最小。再以此点作为下一轮寻找的中心点。反复寻找。直到匹配到终点为止。

3.A*寻路算法的核心。

1.f (寻路消耗) = g(距离起点的距离) + h(距离终点的距离)

2.开启列表:存储的是之前遍历过的数据。遍历过的数据之后不会在遍历了。障碍无需遍历,可直接略过。遍历之前判断一下。

3.关闭列表:每一次遍历完成之后,获取到的最小寻路消耗的位置,会存储在这里。开启下一次循环之前判断一下是否找到了终点。

4.开启列表和关闭列表都需要记录 当前位置的父结点位置是谁。因为这个和最终确定最短路径有关系。因为最短路径的判断不是关闭列表中的数据以此取出。而是通过结点的父结点往回倒这样获取到的路径才是正确的。


http://www.ppmy.cn/ops/156109.html

相关文章

31.Word:科技论文的译文审交稿【31】

目录 NO1.2.3​ NO4.5.6 NO7.8样式应用和修改&多级列表​ NO9奇偶页页眉 NO10自动编号&交叉引用 NO11.12 NO1.2.3 另存为/F12:考生文件夹只保留译文内容、格式设置、修订批注,删除其他:删除表格的左列→删除第一行将表格转化成…

解锁C/C++:链表数据结构的奇幻之旅

目录 一、引言二、链表基础概念2.1 链表是什么2.2 链表的类型三、C 语言实现链表3.1 定义链表节点3.2 创建链表3.3 链表操作3.3.1 遍历链表3.3.2 插入节点3.3.3 删除节点3.3.4 查找节点3.4 完整示例代码四、C++ 实现链表4.1 定义链表节点类4.2 创建链表4.3 链表操作4.3.1 遍历链…

双亲委派(jvm)

1.双亲委派 在 Java 中,双薪委派通常是指双亲委派模型,它是 Java 类加载器的一种工作模式,用于确保类加载的安全性和一致性。以下是其相关介绍: 定义与作用 定义:双亲委派模型要求除了顶层的启动类加载器外&#xf…

Java常见的技术场景面试题

一、单点登录这块怎么实现的? 单点登录概述 单点登录:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统 在以前的时候,一般我们就单系统,所有的功能都在同一个系统上。…

C#面试常考随笔15:C#的GC原理是什么?

基本概念 托管堆:在 C# 中,对象的内存分配主要发生在托管堆上。当创建一个对象时,CLR 会在托管堆上为其分配一块连续的内存空间。引用计数:引用计数是一种简单的内存管理方法,它通过记录每个对象被引用的次数来判断对象是否可以被回收。当引用计数为 0 时,对象就可以被回…

STM32 TIM编码器接口测速

编码器接口简介: Encoder Interface 编码器接口 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度 每个高级定…

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript

二、HTML 中的 JavaScript 将 JavaScript 插入 HTML 的主要方法是使用<script>元素。 <script>元素有下列 8 个属性。 async&#xff1a;可选。表示应该立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#xff0c;比如下载资源或等待其他脚本加载。只对外部…

本地Apache Hive的Linux服务器集群复制数据到SQL Server数据库的分步流程

我们已经有安装Apache Hive的Linux服务器集群&#xff0c;它可以连接到一个SQL Server RDS数据库&#xff0c;需要在该Linux服务器上安装配置sqoop&#xff0c;然后将Hive中所有的表数据复制到SQL Server RDS数据库。 以下是分步指南&#xff0c;用于在Linux服务器上安装配置S…