做网站一定要用服务器吗,门户网站系统建设方案,cmsv6,个人简介代码网页制作模板QT之QMatrix 成员函数介绍使用注意函数的使用 成员函数介绍
reset()#xff1a;将矩阵重置为单位矩阵#xff08;无变换#xff09;。 translate()#xff1a;执行平移变换。例如#xff0c;translate(qreal dx, qreal dy)将图形沿x轴和y轴方向分别平移dx和dy个单位。 sc… QT之QMatrix 成员函数介绍使用注意函数的使用 成员函数介绍
reset()将矩阵重置为单位矩阵无变换。 translate()执行平移变换。例如translate(qreal dx, qreal dy)将图形沿x轴和y轴方向分别平移dx和dy个单位。 scale()执行缩放变换。例如scale(qreal sx, qreal sy)将图形在x轴和y轴方向分别缩放sx和sy倍。 rotate()执行旋转变换。例如rotate(qreal angle)将图形旋转angle度。 shear()执行剪切变换。例如shear(qreal sh, qreal sv)将图形沿x轴和y轴方向分别斜切sh和sv倍。 map()对给定的点进行矩阵变换。例如map(qreal x, qreal y, qreal *tx, qreal *ty) const方法将对点(x,y)进行矩阵变换并返回映射后的坐标位置。
使用注意
QMatrix只支持2D场景下的坐标系变换如果需要在3D场景下进行坐标系变换需要使用其他类如QMatrix4x4等。 QMatrix的变换操作是累积的即连续应用多个变换操作时后一个操作会叠加到前一个操作上。 QMatrix可以与其他Qt类一起使用如QPainter、QOpenGLWidget等用于实现图元的放大缩小、图形的不规则展示、重复图形但有规律的绘制等等。 QMatrix的变换矩阵是按照列优先顺序存储的即第一个元素为m11第二个元素为m21以此类推。
函数的使用
1创建一个QMatrix对象可以使用默认构造函数或者指定矩阵元素进行初始化。
QMatrix matrix;
matrix.setMatrix(m11, m12, m21, m22, dx, dy);2使用QMatrix的方法进行图形变换操作例如平移、旋转、缩放等。
matrix.translate(dx, dy); // 平移图形
matrix.rotate(angle); // 旋转图形
matrix.scale(sx, sy); // 缩放图形3将QMatrix应用到QPainter对象上用于在绘制图形时实现变换效果。
QPainter painter;
painter.begin(image);
painter.setMatrix(matrix); // 设置变换矩阵
painter.drawRect(rect); // 绘制矩形
painter.end();4可以使用QMatrix的map()方法对坐标点进行变换得到变换后的坐标位置。
QPointF point(x, y);
QPointF transformedPoint matrix.map(point); // 将点按照当前矩阵进行变换