由于我似乎无法获得答案,因此需要进行一些澄清。在为网格编写astar算法时,我想知道它是否适用于任何大小的矩形或仅适用于完美正方形的网格?
如果有处理矩形启发式的特定方法,那是什么?
如果人们需要知道我正在用C++编写它以便在UE4中使用。
感谢大家!
最佳答案
不,A *根本不需要网格。您可以使用任何位置的节点,并且只要您的启发式是可接受的,A *就应该起作用。
实际上,如果您可以保证您的启发式算法是可以接受的(即保证绝对不会高估距离),则您的节点实际上根本不需要位置。当然,许多实际应用程序确实具有具有特定位置的节点,并且欧几里得距离是一种方便的可允许的启发式方法。
使矩形网格工作所需要做的唯一一件事就是确保度量标准正确。也就是说:节点到节点的距离和欧几里得距离的计算必须正确反射(reflect)网格的水平和垂直间距。
关于c++ - AStar网格算法仅处理正方形网格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63964351/