没有复杂的变换,简单转化窗口坐标系,即可按我们正常熟知的坐标系进行绘图
QPainter坐标系以左上角为原点,如下图

在这样的坐标系下绘图,位置这是倒过来的
QPainter m_pPainter(this);
m_pPainter.setBrush(Qt::yellow);
m_pPainter.drawRect(0, 0, 50, 50);
m_pPainter.translate(100, 100); //将点(100,100)设为原点
m_pPainter.setBrush(Qt::red);
m_pPainter.drawRect(0, 0, 50, 50);

要将QT坐标系转换为我们正常认知的坐标系,如下图

只需要一行代码m_pPainter.setWindow(0, this->height(), this->width(), -(this->height()));
增加窗口坐标系转换后,则按照我们正常认知的坐标系进行绘制,绘图效果如下图
QPainter m_pPainter(t

本文介绍了如何在Qt中使用Painter类时,从标准的左上角原点坐标系转换为我们熟悉的坐标系,通过设置窗口坐标并提供示例代码,帮助开发者理解和实现坐标系调整以正确绘制图形。
&spm=1001.2101.3001.5002&articleId=114013715&d=1&t=3&u=2c7ec5420c9e46eb82e9f6cfc7730452)
2万+

被折叠的 条评论
为什么被折叠?



