算法:Astar寻路算法改进

简介: 早前写了一篇《RCP:gef智能寻路算法(A star)》 出现了一点问题。 在AStar算法中,默认寻路起点和终点都是N x N的方格,但如果用在路由上,就会出现问题。 如果,需要连线的终点并不在方格的四角上,就产生了斜线。

早前写了一篇《RCP:gef智能寻路算法(A star)

出现了一点问题。

在AStar算法中,默认寻路起点和终点都是N x N的方格,但如果用在路由上,就会出现问题。

如果,需要连线的终点并不在方格的四角上,就产生了斜线。于是我们可以对终点附近的点重新做一点儿处理,源码如下所示:

        int size = points.size();
        if (size < 3)
            return;
        points.removePoint(size - 1);
        Point pointN1 = points.getLastPoint();
        Point pointN2 = points.getPoint(size - 3);

        if (pointN2.x == pointN1.x) {
            points.setPoint(new Point(pointN1.x, endPoint.y), size - 2);
        } else if (pointN2.y == pointN1.y) {
            points.setPoint(new Point(endPoint.x, pointN1.y), size - 2);
        }

 

目录
相关文章
|
算法
Threejs中使用astar(A*)算法寻路导航,Threejs寻路定位导航
Threejs中使用astar(A*)算法寻路导航,Threejs寻路定位导航
519 0
Threejs中使用astar(A*)算法寻路导航,Threejs寻路定位导航
|
算法 定位技术
基于Astar算法的栅格地图最优路径搜索matlab仿真,可以修改任意数量栅格
基于Astar算法的栅格地图最优路径搜索matlab仿真,可以修改任意数量栅格
184 0
基于Astar算法的栅格地图最优路径搜索matlab仿真,可以修改任意数量栅格
|
算法 定位技术
基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
163 0
基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
|
算法 机器人
m分别使用Dijkstra算法和Astar算法进行刚体机器人最短路径搜索和避障算法的matlab仿真,带GUI界面
m分别使用Dijkstra算法和Astar算法进行刚体机器人最短路径搜索和避障算法的matlab仿真,带GUI界面
139 0
m分别使用Dijkstra算法和Astar算法进行刚体机器人最短路径搜索和避障算法的matlab仿真,带GUI界面
488. 祖玛游戏 :「搜索 + 剪枝」&「AStar 算法」
488. 祖玛游戏 :「搜索 + 剪枝」&「AStar 算法」
|
机器学习/深度学习 算法
【刷穿 LeetCode】求「连通图经过所有点的最短路径」的三种方式 :「BFS」&「Floyd + 状压 DP」 &「AStar 算法」
【刷穿 LeetCode】求「连通图经过所有点的最短路径」的三种方式 :「BFS」&「Floyd + 状压 DP」 &「AStar 算法」
|
机器学习/深度学习 算法 Java
【每日算法】使用「双向 BFS」解决搜索空间爆炸问题(附启发式搜索 AStar 算法) |Python 主题月
【每日算法】使用「双向 BFS」解决搜索空间爆炸问题(附启发式搜索 AStar 算法) |Python 主题月
|
算法
算法:Astar寻路算法改进,双向A*寻路算法
早前写了一篇关于A*算法的文章:《算法:Astar寻路算法改进》 最近在写个js的UI框架,顺便实现了一个js版本的A*算法,与之前不同的是,该A*算法是个双向A*。   双向A*有什么好处呢? 我们知道,A*的时间复杂度是和节点数量以及起始点难度呈幂函数正相关的。
3094 0
|
算法
“AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (上)
一提到“A*算法”,可能很多人都有"如雷贯耳"的感觉。用最白话的语言来讲:把游戏中的某个角色放在一个网格环境中,并给定一个目标点和一些障碍物,如何让角色快速“绕过障碍物”找出通往目标点的路径。(如下图) 在寻路过程中,角色总是不停从一个格子移动到另一个相邻的格子,如果单纯从距离上讲,移动到与自身斜对角的格子走的距离要长一些,而移动到与自身水平或垂直方面平行的格子,则要近一些。
1000 0
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。