十六、Qt 2D 绘图(六)坐标系统 前面一节我们讲解了图片的显示,其中很多都用到了坐标的变化,这一节我们简单讲一下 Qt的坐标系统,其实也还是主要讲上一节的那几个函数
这里我们先讲解一下 Qt的坐标系,然后讲解那几个函数,它们分别是: translate()函数,进行平移变换;scale()函数,进行比例变换;rotate()函数,进行旋转变换;shear()函数,进行扭曲变换
最后介绍两个有用的函数 save()和 restore(),利用它们来保存和弹出坐标系的状态,从而实现快速利用几个变换来绘图
一、坐标系简介
Qt中每一个窗口都有一个坐标系,默认的,窗口左上角为坐标原点,然后水平向右依次增大,水平向左依次减小,垂直向下依次增大,垂直向上依次减小
原点即为(0,0)点,然后以像素为单位增减
例如: void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); painter
setBrush(Qt::red); painter
drawRect(0,0,100,100); painter
setBrush(Qt::yellow); painter
drawRect(-50,-50,100,100); } 我们先在原点(0,0)绘制了一个长宽都是100像素的红色矩形,又在(-50,-50)点绘制了一个同样大小的黄色矩形
可以看到,我们只能看到黄色矩形的一部分
二、坐标系变换
坐标系变换是利用变换矩阵来进行的,我们可以利用 QTransform类来设置变换矩阵,因为一般我们不需要进行更改,所以这里不在涉及
下面我们只是对坐标系的平移,缩放,旋转,扭曲等应用进行介绍
利用 translate()函数进行平移变换
void Dialog::paintEvent(QPaintE