我正在为我的方形网格寻路项目制定一个避障解决方案。我首先进行A *搜索以找到" long"路径。接下来,我采取我单位的当前位置并重复“#&long;" long"路径,直到我不再有视线,这产生"短"路径(单位>位置 - >最远位置w / LoS)。当我到达"短"路径,我重复找到另一个"短"直到达到目标的路径。
如果路上有障碍物,我想修改我的短路径以添加未对齐到网格的其他点。我发现障碍物与短路径的中心位置相交。半径,我的计划是在这些障碍的周围添加额外的点。这些点必须添加在线相交的圆的一侧,这样路径就不会一直绕着另一边。
以下是一些更好解释的截图:
http://puu.sh/xFHw5/0e8f32da7a.png
http://puu.sh/xFHwU/04a4b1fe27.png
答案 0 :(得分:1)
您可以从两侧找到由tangents to circl e组成的路径,以及切线与圆相交的圆弧连接点。作为变体 - 使用切线的交点,在这种情况下,路径将仅包含两个直线段。