寻路算法 - PathPlanning
函数简介
提供二值化地图自动寻路功能,白色为可通行区域,黑色为障碍物。在指定起点和终点之间寻找最优路径。
接口名称
PathPlanning
DLL调用
long PathPlanning(long instance, long image, int startX, int startY,
int endX, int endY, double potentialRadius,
double searchRadius);
参数说明
参数名 | 类型 | 说明 |
---|---|---|
instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
image | 长整数型 | 二值化图像句柄 |
startX | 整数型 | 起点X坐标 |
startY | 整数型 | 起点Y坐标 |
endX | 整数型 | 终点X坐标 |
endY | 整数型 | 终点Y坐标 |
potentialRadius | 双精度浮点数 | 势场计算的精度和影响强度: 半径小:势场计算更"局部",每个点主要考虑附近几格的距离 半径大:势场计算更"全局",每个点会考虑更大范围的距离关系 势场越大 路径更"有远见",会考虑更全局的代价 计算量大,但路径更平滑 |
searchRadius | 双精度浮点数 | 搜索半径,限制搜索范 |
示例
// 创建OLA实例
int64_t instance = CreateCOLAPlugInterFace();
// 加载二值化图像
int64_t image = LoadImage("map.bmp");
// 设置起点和终点
int32_t startX = 100;
int32_t startY = 100;
int32_t endX = 500;
int32_t endY = 500;
// 设置搜索参数
double potentialRadius = 10.0;
double searchRadius = 50.0;
// 执行路径规划
int64_t result = PathPlanning(instance, image, startX, startY, endX, endY, potentialRadius, searchRadius);
// 释放资源
DestroyCOLAPlugInterFace(instance);
返回值
返回路径规划结果字符串指针,返回格式:
[
{
"x": 1,
"y": 2
},
{
"x": 2,
"y": 1
}
]
注意:
- potentialRadius,searchRadius为负数时只返回jps寻路数据不做路径优化。
- 返回的字符串指针需要调用FreeStringPtr释放内存
- 确保输入的图像为二值化图像,白色区域为可通行,黑色区域为障碍物
- 起点和终点坐标必须在图像范围内
- potentialRadius和searchRadius参数影响路径质量和搜索效率