for (int i = 0; i < agvs.size(); i++) { if (agvs[i].getLoad()){ painter.drawPixmap(agvs[i].getCurrentX()*25+200-(nodeSpacing-nodeSize)/2,(agvs[i].getCurrentY()+1)*25+50-(nodeSpacing-nodeSize)/2,25,25,QPixmap(":/new/prefix1/agvload.png").scaled(25,25)); } else { painter.drawPixmap(agvs[i].getCurrentX()*25+200-(nodeSpacing-nodeSize)/2,(agvs[i].getCurrentY()+1)*25+50-(nodeSpacing-nodeSize)/2,25,25,QPixmap(":/new/prefix1/agv1.png").scaled(25,25)); } if (paths.size() > 0) { // 检查 paths 是否有数据 std:: cout << "wsn" << endl; painter.setPen(QPen(Qt::red, 5)); // 设置画笔颜色和宽度 for (int i = 0; i < paths.size() - 1; i++) { // 遍历每个子数组 for (int j = 0; j < paths[i].size() - 1; j++) { // 遍历每个子数组中的点 painter.drawLine(paths[i][j]->x * 25 + 200, paths[i][j]->y * 25 + 50, paths[i][j + 1]->y * 25 + 200, paths[i][j + 1]->y * 25 + 50); } } } },爲什麽繪製路綫沒有運行,修改代碼
时间: 2024-01-08 20:03:11 浏览: 61
AGVS.rar_AGVS调度_gulf5j4_scheduling AGV_wpf agv调度系统_调度控制
5星 · 资源好评率100%
根据您提供的代码,我看到您在绘制路径时使用了`paths[i][j]->x`和`paths[i][j + 1]->y`这样的代码,似乎是有问题的。因为在这里调用的是指针的x和y属性,但是在您的代码中,并没有显示定义一个指向节点的指针。所以我建议您修改一下代码如下:
```
for (int i = 0; i < paths.size(); i++) { // 遍历每个子数组
painter.setPen(QPen(Qt::red, 5)); // 设置画笔颜色和宽度
for (int j = 0; j < paths[i].size() - 1; j++) { // 遍历每个子数组中的点
QPoint start(paths[i][j].x * 25 + 200, paths[i][j].y * 25 + 50);
QPoint end(paths[i][j + 1].x * 25 + 200, paths[i][j + 1].y * 25 + 50);
painter.drawLine(start, end);
}
}
```
这样就可以正确地绘制路径了。
阅读全文