用qpainter画一个椭圆,并且椭圆是围绕椭圆中心旋转了30度
时间: 2024-03-26 17:36:03 浏览: 78
下面是使用 QPainter 绘制一个围绕椭圆中心旋转了 30 度的椭圆的示例代码:
```cpp
void MyWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
int width = 100; // 椭圆宽
int height = 50; // 椭圆高
int x = (this->width() - width) / 2; // 椭圆的左上角 x 坐标
int y = (this->height() - height) / 2; // 椭圆的左上角 y 坐标
painter.translate(QPointF(x + width / 2, y + height / 2));
painter.rotate(30.0); // 旋转 30 度
painter.drawEllipse(QRectF(-width / 2, -height / 2, width, height));
}
```
在这个示例中,我们首先计算出椭圆的左上角坐标,然后使用 QPainter 对象进行绘制。我们使用 translate() 函数将坐标系的原点移至椭圆的中心,然后使用 rotate() 函数进行旋转。最后,我们使用 drawEllipse() 函数绘制椭圆。其中,QRectF(-width / 2, -height / 2, width, height) 表示椭圆的矩形区域,它的左上角为 (-width / 2, -height / 2),宽为 width,高为 height。
运行上述代码,可以看到绘制出来的椭圆已经围绕中心旋转了 30 度。
阅读全文