QPoint start(agvs[i].current_x25+200, (agvs[i].current_y+1)25+50); QPoint end(next_node->x 25 + 200, next_node->y 25 + 50);,畫出Qpoint,左上角為start和右下角為end的矩形
时间: 2024-03-09 21:47:38 浏览: 56
您可以使用 `QRect` 类来创建一个左上角为 `start` 点,右下角为 `end` 点的矩形。例如:
```
QRect rect(start, end);
```
接下来,您可以使用 `painter.drawRect()` 方法来绘制该矩形:
```
painter.drawRect(rect);
```
这将在 `start` 点和 `end` 点之间绘制一个矩形。如果您想更改矩形的颜色和填充方式,可以使用 `setPen()` 和 `setBrush()` 方法。例如,以下代码将设置矩形的填充颜色为红色:
```
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(Qt::red));
painter.drawRect(rect);
```
这将绘制一个红色矩形,没有边框。同样,您需要在绘制完矩形后恢复画笔和画刷的默认值,以便后续绘图不受影响。
相关问题
QPoint start(agvs[i].current_x*25+200, (agvs[i].current_y+1)*25+50); QPoint end(next_node->x* 25 + 200, next_node->y* 25 + 50);,畫出Qpoint,start和end的矩形
如果您想在 `start` 和 `end` 两个点的位置上绘制矩形,可以使用 `painter.drawRect()` 方法。例如:
```
// 绘制 start 点位置上的矩形
painter.drawRect(QRect(start.x(), start.y(), nodeSize, nodeSize));
// 绘制 end 点位置上的矩形
painter.drawRect(QRect(end.x(), end.y(), nodeSize, nodeSize));
```
这将在 `start` 点和 `end` 点的位置上分别绘制一个 `nodeSize x nodeSize` 像素大小的矩形。如果您想更改矩形的颜色和填充方式,可以使用 `setPen()` 和 `setBrush()` 方法。例如,以下代码将设置矩形的填充颜色为红色:
```
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(Qt::red));
painter.drawRect(QRect(start.x(), start.y(), 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((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()` 语句之前和之后都设置画笔的颜色,以便正确绘制该线段的颜色。
阅读全文