Astar astar; std::vector<std::vector<Node*>> paths(agvs.size()); // 得到agv的路綫 for (int i = 0; i < agvs.size(); i++) { Node* start_node = new Node(agvs[i].getCurrentX(), agvs[i].getCurrentY()); Node* end_node = new Node(agvs[i].getStartX(), agvs[i].getStartY()); Node* end_node1 = new Node(agvs[i].getEndX(), agvs[i].getEndY()); std::vector<Node*> path_to_start = astar.getPath(start_node, end_node); std::vector<Node*> path_to_end = astar.getPath(end_node, end_node1); // 去掉 end_node1 path_to_end.erase(path_to_end.begin()); std::vector<Node*> path; path.insert(path.end(), path_to_start.begin() + 1, path_to_start.end()); path.insert(path.end(), path_to_end.begin(), path_to_end.end()); paths[i] = path;,修改爲:判斷agv的load,如果是false,則將agv的current的坐標和任務的起點坐標輸入到getpath中,如果agv的load為true,則將agv的current的坐標和任務的終坐標輸入到getpath中
时间: 2023-11-22 18:53:05 浏览: 28
好的,那么您需要对代码做如下修改:
```
Astar astar;
std::vector<std::vector<Node*>> paths(agvs.size());
for (int i = 0; i < agvs.size(); i++) {
Node* start_node = new Node(agvs[i].getCurrentX(), agvs[i].getCurrentY());
Node* end_node;
if (!agvs[i].getLoad()) { // 如果load为false,将任务的起点作为终点
end_node = new Node(agvs[i].getStartX(), agvs[i].getStartY());
} else { // 如果load为true,将任务的终点作为终点
end_node = new Node(agvs[i].getEndX(), agvs[i].getEndY());
}
std::vector<Node*> path = astar.getPath(start_node, end_node); // 直接得到路径
paths[i] = path;
}
```
这样修改后,当`agv`的`load`为`false`时,`end_node`就是任务的起点;当`agv`的`load`为`true`时,`end_node`就是任务的终点。然后直接调用`astar.getPath`函数,得到路径并存储到`paths`中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)