Qt QTransform 二维坐标系之间的转换

QTransform类

QTransform类用于控制二维坐标系之间的转换

包含:位移、缩放、扭曲、旋转还有映射

首先看它的核心内容:

在这里插入图片描述

这是一个仿射变换矩阵(affine transformation),它包含了坐标系转换所需要的所有信息

elementdescription
m11 水平缩放
m22 垂直缩放
m21 水平扭曲
m12 垂直扭曲
m31(dx) 水平位移
m32(dy) 垂直位移
m13 水平映射
m23 垂直映射
m33 额外的映射因子

 他们具体的功能可以看下图:

在这里插入图片描述

你可以直接使用

void setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)

来设置这些元素

当然,QTransform也提供了很多方法来方便你使用

QTransform.translate(qreal dx, qreal dy) 

dx,dy为任意大小的实数,保存到m31(dx)和m32(dy)中

QTransform.scale(qreal sx, qreal sy)

 sx,sy为任意大小的实数,保存到m11和m22中

QTransform.rotate(qreal angle)

 angle为任意大小的实数,不过为了便于阅读,最好是0到360之间

QTransform.shear(qreal sh, qreal sv)

 sh,sv为任意大小的实数,保存到m12和m21中

原文地址:https://www.cnblogs.com/ybqjymy/p/14622275.html