在有障碍物的网格中找到两个最远的像元

时间:2019-01-24 16:04:08

标签: grid cell path-finding

没有定义的起始像元,如何以最有效的方式找到带有障碍物(墙壁等)的网格中最远的两个像元?

只要足够好,就不必是一个完美的结果,也可以是一个近似值。

如果你会,我爱你。

1 个答案:

答案 0 :(得分:0)

  1. 执行8向存储桶填充算法以找到死角。

为最大程度地减少死角,首先将基数附加到队列中,然后将主基数附加到对角线上。还要跟踪最后的死角,如果发现新的死角与最后的死角太近,则删除最后一个死角并保留新的死角。在大型地图中,您还可以计算从死角到地图中心的曼哈顿距离,如果距离太短,则不添加死角。

  1. 现在每个点到每个其他点仅A *。

由于对每个路径进行了两次测试(从p1到p2,然后从p2到p1),一旦测试了p1到p2,您也可以立即将p2到p1进行注册,且距离相同,以将进行A所需的时间减半*搜索。然后您可以通过number of deadends * (number of deadends - 1) / 2来计算进行A *搜索的时间。