QPoint start(agvs[i].current_x*25+200+nodeSize/2, (agvs[i].current_y+1)*25+50+nodeSize/2); if (agvs[i].current_x == next_node->x && next_node->y > agvs[i].current_y)//向下 { QPoint end(next_node->x* 25 + 200 +nodeSize/2, (agvs[i].current_y+1)*25+50+nodeSize/20+16); painter.drawLine(start, end); }, // 畫出地圖 for(int i=0;i<31;i++) for(int j=0;j<31;j++) { switch(_MAP[i][j]) { case 1://画障礙物 painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize)); break; case 0://画地圖 painter.setPen(QColor(66, 139, 230)); // 设置线条颜色 painter.setBrush(QBrush(QColor(66, 139, 230),Qt::SolidPattern)); painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize));,將筆刷之内的坐標點都變爲紅色
时间: 2024-02-14 12:10:20 浏览: 81
您可以使用以下代码将笔刷内的坐标点变为红色:
```
painter.setPen(QColor(Qt::red)); // 设置线条颜色为红色
painter.setBrush(QBrush(Qt::red, Qt::SolidPattern)); // 设置笔刷颜色为红色
painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize)); // 画一个矩形,颜色为红色
```
请注意,这将覆盖之前设置的颜色。如果您希望在之前的颜色上添加红色,可以使用以下代码:
```
painter.setPen(QColor(Qt::red)); // 设置线条颜色为红色
painter.setBrush(QBrush(QColor(66, 139, 230, 128), Qt::DiagCrossPattern)); // 设置笔刷颜色为之前的颜色加上红色,使用斜线图案
painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize)); // 画一个矩形,颜色为之前的颜色加上红色
```
这将在之前的颜色上添加红色,并使用斜线图案来填充矩形。
相关问题
QPoint start(agvs[i].current_x*25+200+nodeSize/2, (agvs[i].current_y+1)*25+50+nodeSize/2); if (agvs[i].current_x == next_node->x && next_node->y > agvs[i].current_y)//向下 { QPoint end(next_node->x* 25 + 200 +nodeSize/2, (agvs[i].current_y+1)*25+50+nodeSize/20+16); painter.drawLine(start, end); }, // 畫出地圖 for(int i=0;i<31;i++) for(int j=0;j<31;j++) { switch(_MAP[i][j]) { case 1://画障礙物 painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize)); break; case 0://画地圖 painter.setPen(QColor(66, 139, 230)); // 设置线条颜色 painter.setBrush(QBrush(QColor(66, 139, 230),Qt::SolidPattern)); painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize));,將地圖上,Qpoint之内的點都變爲紅色
您可以使用以下代码将地图上所有在 `QPoint` 内的点变为红色:
```
QRect rect(start, end); // 创建一个包含起点和终点的矩形
for(int i=0;i<31;i++) {
for(int j=0;j<31;j++) {
QPoint point(i*25+200+nodeSize/2, (j+1)*25+50+nodeSize/2);
if(rect.contains(point)) { // 如果点在矩形内
painter.setPen(QColor(Qt::red)); // 设置线条颜色为红色
painter.setBrush(QBrush(Qt::red, Qt::SolidPattern)); // 设置笔刷颜色为红色
painter.drawRect(QRect((i*25+200),(j+1)*25+50,nodeSize,nodeSize)); // 画一个矩形,颜色为红色
}
}
}
```
这会遍历地图上的所有点,如果该点在 `QPoint` 所确定的矩形内,则将该点颜色设置为红色。请注意,这可能会导致一些障碍物也被涂成红色,因此您可能需要修改该代码以仅在地图上的可通行区域内绘制红色矩形。
QPoint start(agvs[i].current_x*25+200+nodeSize/2, (agvs[i].current_y+1)25+50+nodeSize/2); if (agvs[i].current_x == next_node->x && next_node->y > agvs[i].current_y)//向下 { QPoint end(next_node->x 25 + 200 +nodeSize/2, (agvs[i].current_y+1)25+50+nodeSize/20+16); painter.drawLine(start, end); }, // 畫出地圖 for(int i=0;i<31;i++) for(int j=0;j<31;j++) { switch(_MAP[i][j]) { case 1://画障礙物 painter.setBrush(QBrush(Qt::black,Qt::SolidPattern)); painter.drawRect(QRect((i25+200),(j+1)25+50,nodeSize,nodeSize)); break; case 0://画地圖 painter.setPen(QColor(66, 139, 230)); // 设置线条颜色 painter.setBrush(QBrush(QColor(66, 139, 230),Qt::SolidPattern)); painter.drawRect(QRect((i25+200),(j+1)*25+50,nodeSize,nodeSize));,將地圖上,drawline之内的坐標都變爲黑色
您可以通过在 `painter.drawLine()` 语句之前和之后添加以下语句来实现将该线段上的点变为黑色:
```
painter.setPen(QPen(Qt::black, 1, Qt::SolidLine));
```
这将设置画笔的颜色为黑色,线宽为 1 像素,线型为实线,然后您可以调用 `painter.drawLine()` 来绘制该线段。这样,该线段上的所有点都将以黑色显示。同样,您需要在绘制完该线段后恢复画笔的默认值,以便后续绘图不受影响。您可以使用以下语句将画笔重置为默认值:
```
painter.setPen(QPen(Qt::black, 1, Qt::SolidLine));
```
请注意,您需要确保在 `painter.drawLine()` 语句之前和之后都设置画笔的颜色,以便正确绘制该线段的颜色。
阅读全文