专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »算法 » 寻路算法java:用JAVA写的一个寻路算法 »正文

寻路算法java:用JAVA写的一个寻路算法

来源: 发布时间:星期三, 2008年12月10日 浏览:119次 评论:0

在我了解到“寻路算法”这一说法后,明白A与A*算法前,曾经自己认真思考过,最后在梦里得到了一种寻路算法。基于几何的。

下面是图。

        ●Start

    A********B

C******D E*****F

        ●END 

假如从Start出发要去End,最短路线应该是Start到End的线段。于是联结两点。

然后在中间遇到障碍物AB。这个时候线段被阻隔。于是向两方向旋转直到Start-A,Start-B。此时再向外旋转则与障碍脱离,(也就是说此时Start出发的两条射线与AB相切),记录Start-A,Start-B。

递归该方法,得Start-A-C-End,Start-A-D-End,Start-B-E-End,Start-B-F-End。

逆向判断是否可以省略中间某些点,使得路程更近。这样Start-A-C-End变成Start-C-End。

将得到的所有路径对比得到最短路径。

按照这个方法,加以少量修改,可以实现最短路径的寻路方法,完全不同于A*方法。

另外还考虑过目标点不可到达的情况。如:

    |

    S

 ***|***

*   |   *

*   E   *

*   |   *

 ***|***

    |

也可实现。即:用S-E将障碍物分割成左右(顺逆时针旋转)两部分。一旦左方向旋转得到的点到达了S-E直线所分割的障碍物的右侧,则该路线被剪枝。

不知道是否有高手知道,有没有类似的方法。希望大家给个评价。

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: