我目前正在统一制作RTS游戏,我需要一种方法来计算连续2d平面上存在某些障碍物的两点之间的最短路径。
我有一个开始位置,一个结束位置和一个可以测试位置是否有效的函数。我需要一种算法,它返回一系列要移动的点才能到达目的地。
我所知道的大多数路径算法(如A *和IDA *)都需要离散化的搜索空间。我自己会将飞机划分为一个网格,但我担心它会导致锯齿形图案在沿对角线移动时看起来非常不自然。有没有办法缓解这个问题或我可以使用的不同路径算法?它甚至不必找到绝对最短的路径,只是一条有意义的路径。
答案 0 :(得分:1)
一种方法可能是通过仅考虑对刨削感兴趣的点(在障碍物边界上的点,例如仅限于边界框的角点)来离散搜索空间,然后使用您已知的任何算法。
另一种选择是在网格上计算,然后平滑网格上找到的最佳路径。
答案 1 :(得分:-1)
您可以创建一个锯齿形的路径,然后使用“纯追求”对其进行平滑。