QTransform Qt坐标转换

QTransform类定义了一个特定的用于2D坐标转换。


它的转换包括如何对坐标系统位置迁移,缩放,扭曲,旋转等,它在渲染图片中被用的非常多。

QTransform不同于QMatrix 它是一个真是的3*3的矩阵,允许进行可视化的转换。

QTransform的toAffine()的方法允许QTransform转换为QMatrix. 如果一个可视化的转换被用在特定的matrix, 这个转换将会导致一些数据的丢失。


QTransform是Qt推荐使用的转换类。

一个QTransform对象可以通过使用setMatrix(), scale(), rotate(), translate(), shear()等函数来构建。也就是说,它可以通过应用基础的矩阵操作来构建。这个矩阵可以在构建的时候定义,同事可以通过reset()函数来重置为默认的矩阵。


QTransform类支持图形原始数据的映射:一个给定的点,线,不规则图形,区域或者是绘制的路径通过matrix定义的数据通过map()函数都可以映射到坐标系统。

一个矩形的坐标可以通过mapRect()函数来进行转换,也可以通过mapToPolygon()函数转换为一个多边形。


QTransform提供了一个isIdentity()函数,如果这个matrix是个可以识别的matrix就会返回true, 同时isInvertible()函数也返回true,如果这个矩阵是一个非奇异矩阵。这个函数会返回倒数矩阵,如果它是可倒的话,同时adjoint()会返回该矩阵的经典伴随矩阵。determinant()函数将会返回这个矩阵的行列式。



你可能感兴趣的:(qt)