qpainter坐标是以哪里为原点,坐标方向是什么
时间: 2024-02-26 14:10:02 浏览: 150
Qt坐标系转换(绘制逻辑坐标系)
QPainter 的坐标系统是以绘图设备的左上角为原点,x 轴向右为正,y 轴向下为正。这和数学中的笛卡尔坐标系是一致的。
例如,如果我们要在窗口中心绘制一个直径为 100 像素的圆,可以使用下面的代码:
```cpp
void MyWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
int x = (this->width() - 100) / 2;
int y = (this->height() - 100) / 2;
painter.drawEllipse(QRect(x, y, 100, 100));
}
```
在这个示例中,我们首先计算出绘制圆的左上角坐标,然后使用 QRect(x, y, 100, 100) 构造一个矩形区域,最后使用 drawEllipse() 函数绘制圆形。
需要注意的是,由于坐标系的不同,窗口左上角的坐标为 (0, 0),而不是数学中的右上角。因此,在计算绘制对象的坐标时,需要考虑到这一点。
阅读全文