业精于勤,荒于嬉
全部博文(763)
分类: C/C++
2009-12-01 21:55:38
任务: 从 A 点移动到,B点,画 X 的表示不能通过,计算最优路径。入下图所示:
如上图所示,最优的路径为红线表示路径。计算方法如下:
1> 地图数据可以看做一个个的正方形格子。
2> 将所有地图格子的数值都初始化为 1000 (假设最多移动1000步)
3> 将画 X 的格子,设置值为 -1,表示此格子不能通过
4> 将 B 点出格子的数值设置为 0,然后向四周发散,如果某个的格子的数值比 B 点的大,则将此处的格子值设置为 “前一个格子的值 + 1”,然后以次格子为中心,以此向外发散。
5> 最后,找到 A 点时,A 点处的格子的值为 14,此时,从A到 B的最优路径为:14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
6> 说明,此寻路算法为比较简单的寻路算法,比较适合处理速度有限的嵌入式开发平台。