怎么把这段代码修该成绘画小梯形//绘制圆盘的刻度 void QDiscWidget::draw_disc_scale(QPainter &p) { p.save(); QPen pen(QColor(255, 255, 255)); pen.setWidth(5); p.setPen(pen); for (int i = 0; i < 360; ++i) { if ((i % 30) == 0) { p.drawLine(disc_R - 10, 0, disc_R-3, 0); } p.rotate(1); } p.restore(); }
时间: 2024-04-05 08:32:51 浏览: 15
要将代码修改为绘制小梯形,可以将p.drawLine()函数替换为p.drawPolygon()函数,并使用QPolygonF类来定义多边形的顶点。以下是修改后的代码:
void QDiscWidget::draw_disc_scale(QPainter &p) {
p.save();
QPen pen(QColor(255, 255, 255));
pen.setWidth(5);
p.setPen(pen);
for (int i = 0; i < 360; ++i) {
if ((i % 30) == 0) {
QPolygonF polygon;
polygon << QPointF(disc_R - 10, 0)
<< QPointF(disc_R - 3, 0)
<< QPointF(disc_R - 3, -5)
<< QPointF(disc_R - 10, -5);
p.drawPolygon(polygon);
}
p.rotate(1);
}
p.restore();
}
这段代码会在圆盘上每隔30度绘制一个小梯形,梯形的顶点分别为(disc_R - 10, 0),(disc_R - 3, 0),(disc_R - 3, -5),(disc_R - 10, -5)。