Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 沿着网格进行路径查找,并进行扭曲_Java_Algorithm_A Star - Fatal编程技术网

Java 沿着网格进行路径查找,并进行扭曲

Java 沿着网格进行路径查找,并进行扭曲,java,algorithm,a-star,Java,Algorithm,A Star,我一直在绞尽脑汁想办法在二维网格上找到两点之间的最短路径。我看过关于Lee和A*算法的帖子,但似乎没有人能回答我最突出的问题。如何使这些算法适用于十进制坐标 我所看到的一切都是简单的整数。但是当你试图在起点(3.3,4)和终点(5,4.6)之间找到最短路径时会发生什么 基本上,我需要找到两个点之间的最短路径,其中点包含小数,但你仍然必须遵循整数网格线。您不能沿对角线移动,只能沿栅格南北向或向西移动,但不能从交叉点开始或结束(如1,1) 想象一个完美的城市,网格线(每个广场)之间的每个空间都是一个

我一直在绞尽脑汁想办法在二维网格上找到两点之间的最短路径。我看过关于Lee和A*算法的帖子,但似乎没有人能回答我最突出的问题。如何使这些算法适用于十进制坐标

我所看到的一切都是简单的整数。但是当你试图在起点(3.3,4)和终点(5,4.6)之间找到最短路径时会发生什么

基本上,我需要找到两个点之间的最短路径,其中点包含小数,但你仍然必须遵循整数网格线。您不能沿对角线移动,只能沿栅格南北向或向西移动,但不能从交叉点开始或结束(如1,1)

想象一个完美的城市,网格线(每个广场)之间的每个空间都是一个城市街区,网格线是你可以通行的道路

我是不是跟李或阿*找错人了?我对寻路非常陌生,我完全自学成才。我知道,在这一点上,重新发明一种算法超出了我的范围,但我看着我的80多条if语句,想“这不是一种以有效方式进行寻路的方法。”而使用if语句测试所有可能性几乎是不可能的


欢迎发表任何想法或网站文章。提前感谢

A*搜索在这里仍然可以很好地工作。如果您还不熟悉图形的概念,我将首先查找它们并了解*搜索如何在图形上工作。关于A*的许多教程都关注应用于网格的A*,但这只是算法工作原理的一个特例。它同样适用于一般图形

一旦您熟悉了一般的图形结构,您需要对基于网格的a*或Dijkstra算法进行的修改就相对较小了。实际上,您只需添加表示起点和终点位置的新节点,并使用适当加权的边将它们连接到附近的四个晶格点。从那里,你可以像往常一样运行A*


如果你想找一个起点的话,前一段时间我教了一门关于基本数据结构和图形算法的课,并把它们放在一起,可能会给你一个很好的主题介绍。祝你好运

A*搜索在这里应该仍然很有效。如果您还不熟悉图形的概念,我将首先查找它们并了解*搜索如何在图形上工作。关于A*的许多教程都关注应用于网格的A*,但这只是算法工作原理的一个特例。它同样适用于一般图形

一旦您熟悉了一般的图形结构,您需要对基于网格的a*或Dijkstra算法进行的修改就相对较小了。实际上,您只需添加表示起点和终点位置的新节点,并使用适当加权的边将它们连接到附近的四个晶格点。从那里,你可以像往常一样运行A*


如果你想找一个起点的话,前一段时间我教了一门关于基本数据结构和图形算法的课,并把它们放在一起,可能会给你一个很好的主题介绍。祝你好运