Chinaunix首页 | 论坛 | 博客
  • 博客访问: 99173
  • 博文数量: 41
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-18 20:09
文章分类

全部博文(41)

文章存档

2016年(1)

2015年(1)

2014年(9)

2013年(30)

我的朋友

分类: C/C++

2014-02-18 17:10:19

寻路模块需要以下接口:

class FindPath
{
public:
    //导入黑白图
    void loadMap(const char* path);

    //指定坐标是否可行走
    bool canWalk(Point p);

    //两点之间是否可直达
    bool canDistance(Point begin, Point end);

    //两点间寻路, param3: 路径点集合
    void findPath(Point begin, Point end, std::vector& v);
};

具体实现:
1,用a星算法来寻路。代码:astar.zip
2,优化, 以上a星算法是用像素点为单位来搜索,效率极低, 所以在黑白图上设置一些路径点, 找到离起点最近的一个路径点,a星寻路,之后用路径点之间搜索; 到离终点最近的路径点时,再a星计算。代码: not finished.

阅读(726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~