{ painter.drawPixmap(agvs[i].current_x*25+200-(agv_size-nodeSize)/2,(agvs[i].current_y+1)*25+50-(agv_size-nodeSize)/2,agv_size,agv_size,QPixmap(":/new/prefix1/agv1.png").scaled(25,25)); },根據agv的angle旋轉圖片,默認為0
时间: 2024-03-12 22:43:51 浏览: 52
您的问题是如何根据AGV的角度旋转图像?
您可以使用QPixmap的transformed()函数将图像旋转。例如,以下代码将根据AGV的角度(以度为单位)旋转图像:
```
QPixmap agvPixmap(":/new/prefix1/agv1.png");
QPainter painter;
painter.translate(agvs[i].current_x*25+200, (agvs[i].current_y+1)*25+50);
painter.rotate(agvs[i].angle);
painter.drawPixmap(-agv_size/2, -agv_size/2, agv_size, agv_size, agvPixmap.scaled(25, 25).transformed(QTransform().rotate(agvs[i].angle)));
```
这里,我们首先将绘图器的坐标系移动到AGV的中心点,然后旋转绘图器。最后,我们使用transformed()函数将图像旋转并绘制它。
相关问题
QPainter painter(this); painter.drawPixmap(agvs[i].current_x*25+200-(agv_size-nodeSize)/2,(agvs[i].current_y+1)*25+50-(agv_size-nodeSize)/2,agv_size,agv_size,scaled(25,25)); painter.drawText(agvs[i].current_x*25+200-(agv_size-nodeSize)/2,(agvs[i].current_y+1)*25+50-agv_size,"Loading");,報錯修改
抱歉,我在上一个回答中的代码出现了错误。应该是这样修改:
```
QPixmap agvPixmap(":/new/prefix1/agvload.png");
QPainter painter(this);
painter.drawPixmap(agvs[i].current_x*25+200-(agv_size-nodeSize)/2,(agvs[i].current_y+1)*25+50-(agv_size-nodeSize)/2,agvPixmap.scaled(agv_size, agv_size));
painter.drawText(agvs[i].current_x*25+200-(agv_size-nodeSize)/2,(agvs[i].current_y+1)*25+50-agv_size,"Loading");
```
这样修改后,会在 AGV 上方输出文本 "Loading",并且 AGV 图片也会按照指定的大小进行缩放。
painter.drawPixmap(agvs[i].current_x*25+200-(agv_size-nodeSize)/2,(agvs[i].current_y+1)*25+50-(agv_size-nodeSize)/2,agv_size,agv_size,QPixmap(":/new/prefix1/agv1.png").scaled(25,25));,根據agv的angle_值來旋轉圖片
您可以使用QPixmap的transformed()函数和QTransform的rotate()函数将图像旋转。例如,以下代码将根据AGV的angle_值(以度为单位)旋转图像:
```
QPixmap agvPixmap(":/new/prefix1/agv1.png");
QPainter painter;
painter.translate(agvs[i].current_x*25+200, (agvs[i].current_y+1)*25+50);
painter.rotate(agvs[i].angle_);
painter.drawPixmap(-agv_size/2, -agv_size/2, agv_size, agv_size, agvPixmap.scaled(25, 25).transformed(QTransform().rotate(agvs[i].angle_)));
```
这里,我们首先将绘图器的坐标系移动到AGV的中心点,然后旋转绘图器。最后,我们使用transformed()函数将图像旋转并绘制它。
阅读全文