QTransform Class
QTransform 类指定了坐标系的二维变换。更多
头文件: | #include <QTransform> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 所有成员(包括继承成员)列表
- QTransform 属于绘画类。
公共类型
enum | TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject } |
公共函数
QTransform() | |
QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy) | |
QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) | |
qreal | m11() const |
qreal | m12() const |
qreal | m13() const |
qreal | m21() const |
qreal | m22() const |
qreal | m23() const |
qreal | m31() const |
qreal | m32() const |
qreal | m33() const |
QTransform | adjoint() const |
qreal | determinant() const |
qreal | dx() const |
qreal | dy() const |
QTransform | inverted(bool *invertible = nullptr) const |
bool | isAffine() const |
bool | isIdentity() const |
bool | isInvertible() const |
bool | isRotating() const |
bool | isScaling() const |
bool | isTranslating() const |
void | map(qreal x, qreal y, qreal *tx, qreal *ty) const |
QLine | map(const QLine &l) const |
QLineF | map(const QLineF &line) const |
QPainterPath | map(const QPainterPath &path) const |
QPoint | map(const QPoint &point) const |
QPointF | map(const QPointF &p) const |
QPolygon | map(const QPolygon &polygon) const |
QPolygonF | map(const QPolygonF &polygon) const |
QRegion | map(const QRegion ®ion) const |
void | map(int x, int y, int *tx, int *ty) const |
QRectF | mapRect(const QRectF &rectangle) const |
QRect | mapRect(const QRect &rectangle) const |
QPolygon | mapToPolygon(const QRect &rectangle) const |
void | reset() |
(since 6.5) QTransform & | rotate(qreal a, Qt::Axis axis, qreal distanceToPlane) |
QTransform & | rotate(qreal a, Qt::Axis axis = Qt::ZAxis) |
(since 6.5) QTransform & | rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane) |
QTransform & | rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis) |
QTransform & | scale(qreal sx, qreal sy) |
void | setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) |
QTransform & | shear(qreal sh, qreal sv) |
QTransform & | translate(qreal dx, qreal dy) |
QTransform | transposed() const |
QTransform::TransformationType | type() const |
QVariant | operator QVariant() const |
bool | operator!=(const QTransform &matrix) const |
QTransform | operator*(const QTransform &matrix) const |
QTransform & | operator*=(const QTransform &matrix) |
QTransform & | operator*=(qreal scalar) |
QTransform & | operator+=(qreal scalar) |
QTransform & | operator-=(qreal scalar) |
QTransform & | operator/=(qreal scalar) |
QTransform & | operator=(const QTransform &matrix) |
bool | operator==(const QTransform &matrix) const |
静态公共成员
QTransform | fromScale(qreal sx, qreal sy) |
QTransform | fromTranslate(qreal dx, qreal dy) |
bool | quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans) |
bool | quadToSquare(const QPolygonF &quad, QTransform &trans) |
bool | squareToQuad(const QPolygonF &quad, QTransform &trans) |
相关非成员
bool | qFuzzyCompare(const QTransform &t1, const QTransform &t2) |
size_t | qHash(const QTransform &key, size_t seed = 0) |
QLine | operator*(const QLine &line, const QTransform &matrix) |
QLineF | operator*(const QLineF &line, const QTransform &matrix) |
QPainterPath | operator*(const QPainterPath &path, const QTransform &matrix) |
QPoint | operator*(const QPoint &point, const QTransform &matrix) |
QPointF | operator*(const QPointF &point, const QTransform &matrix) |
QPolygon | operator*(const QPolygon &polygon, const QTransform &matrix) |
QPolygonF | operator*(const QPolygonF &polygon, const QTransform &matrix) |
QRegion | operator*(const QRegion ®ion, const QTransform &matrix) |
QDataStream & | operator<<(QDataStream &stream, const QTransform &matrix) |
QDataStream & | operator>>(QDataStream &stream, QTransform &matrix) |
详细描述
变换指定了如何对坐标系进行平移、缩放、剪切、旋转或投影,通常在渲染图形时使用。
可以使用setMatrix(),scale(),rotate(),translate() 和shear() 函数创建 QTransform 对象。或者,也可以通过应用basic matrix operations 来构建。矩阵也可在构建时定义,并可使用reset() 函数将其重置为标识矩阵(默认值)。
QTransform 类支持图形基元的映射:可以使用map() 函数将给定的点、线、多边形、区域或绘画路径映射到该矩阵定义的坐标系中。对于矩形,可以使用mapRect() 函数转换其坐标。还可以使用mapToPolygon() 函数将矩形转换为多边形(映射到本矩阵定义的坐标系)。
QTransform 提供isIdentity() 函数,如果矩阵是同位矩阵,则返回true
;如果矩阵是非奇异矩阵(即 AB = BA = I),则返回isInvertible() 函数,即true
。如果矩阵可逆,则inverted() 函数返回该矩阵的反转副本(否则返回同一矩阵),而adjoint() 则返回该矩阵的经典矢量。此外,QTransform 还提供determinant() 函数,用于返回矩阵的行列式。
最后,QTransform 类支持矩阵乘法、加法和减法,该类的对象可以进行流式处理和比较。
渲染图形
渲染图形时,矩阵定义了变换,但实际变换由QPainter 中的绘图例程执行。
默认情况下,QPainter 在相关设备自身的坐标系上运行。QPaintDevice 的标准坐标系原点位于左上方。x值向右递增,y值向下递增。有关完整说明,请参阅坐标系文档。
QPainter 在不使用 QTransform 的情况下,QTransform.NET 拥有对坐标系进行平移、缩放、剪切和旋转的功能。例如
![]() | void SimpleTransformation::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); painter.rotate(45); painter.setFont(QFont("Helvetica", 24)); painter.setPen(QPen(Qt::black, 1)); painter.drawText(20, 10, "QTransform"); } |
虽然这些函数非常方便,但如果要执行多个变换操作,那么创建一个 QTransform 并调用QPainter::setTransform() 可能会更有效。例如
![]() | void CombinedTransformation::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); transform.rotate(45); transform.scale(0.5, 1.0); painter.setTransform(transform); painter.setFont(QFont("Helvetica", 24)); painter.setPen(QPen(Qt::black, 1)); painter.drawText(20, 10, "QTransform"); } |
基本矩阵操作
一个 QTransform 对象包含一个 3 x 3 矩阵。m31
(dx
) 和m32
(dy
) 元素指定水平和垂直平移。m11
和m22
元素指定水平和垂直缩放。m21
和m12
元素指定水平和垂直剪切。最后,m13
和m23
元素指定水平和垂直投影,m33
作为附加投影因子。
QTransform 使用以下公式将平面中的一点变换为另一点:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
(x, y)为原点,(x ', y')为变换后的点。(x', y') 可以通过对inverted() 矩阵执行相同的操作变换回(x, y)。
各种矩阵元素可以在构建矩阵时设置,也可以在以后使用setMatrix() 函数设置。还可以使用translate(),rotate(),scale() 和shear() 方便的函数对它们进行操作。可以使用m11(),m12(),m13(),m21(),m22(),m23(),m31(),m32(),m33(),dx() 和dy() 函数检索当前设置的值。
平移是最简单的转换。设置dx
和dy
将使坐标系dx
沿 X 轴移动一个单位,dy
沿 Y 轴移动一个单位。缩放可通过设置m11
和m22
来实现。例如,将m11
设置为 2,将m22
设置为 1.5,高度将增加一倍,宽度增加 50%。身份矩阵将m11
、m22
和m33
设置为 1(所有其他设置为 0),将一个点映射到自身。剪切由m12
和m21
控制。将这些元素设置为不同于 0 的值将会扭曲坐标系。通过设置剪切因子和缩放因子可以实现旋转。透视变换通过设置投影因子和缩放因子来实现。
组合变换
下面是使用基本矩阵操作进行组合变换的示例:
![]() | void BasicOperations::paintEvent(QPaintEvent *) { const double a = qDegreesToRadians(45.0); double sina = sin(a); double cosa = cos(a); QTransform scale(0.5, 0, 0, 1.0, 0, 0); QTransform rotate(cosa, sina, -sina, cosa, 0, 0); QTransform translate(1, 0, 0, 1, 50.0, 50.0); QTransform transform = scale * rotate * translate; QPainter painter(this); painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); painter.setTransform(transform); painter.setFont(QFont("Helvetica", 24)); painter.setPen(QPen(Qt::black, 1)); painter.drawText(20, 10, "QTransform"); } |
组合变换首先对每个操作数进行缩放,然后旋转,最后平移,其顺序与因子乘积的书写顺序相同。这意味着应用变换的点在左边与右边的变换隐式相乘。
与矩阵符号的关系
QTransform 中的矩阵符号是常用惯例的转置,该惯例将变换和点表示为矩阵和向量。该约定将左边的矩阵和右边的列向量相乘。换句话说,当几个变换应用于一个点时,最右边的矩阵首先直接作用于向量。然后,左边的下一个矩阵作用于第一个操作的结果,依此类推。因此,正如你在Combining Transforms 中看到的那样,这种约定俗成的做法是以与 QTransform 中相反的顺序乘以组成复合变换的矩阵。平移矩阵并将它们组合到表示点的行向量右侧,可以让变换矩阵在乘积中按照我们认为变换应用于点的顺序出现。
另请参阅 QPainter 、坐标系、仿射变换示例和变换示例。
成员类型文档
enum QTransform::TransformationType
常数 | 值 |
---|---|
QTransform::TxNone | 0x00 |
QTransform::TxTranslate | 0x01 |
QTransform::TxScale | 0x02 |
QTransform::TxRotate | 0x04 |
QTransform::TxShear | 0x08 |
QTransform::TxProject | 0x10 |
成员函数文档
QTransform::QTransform()
构造一个身份矩阵。
除了m11
和m22
(指定刻度)以及m33
设置为 1 外,所有元素都设置为 0。
另请参见 reset().
QTransform::QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
用m11,m12,m21,m22,dx 和dy 构建一个矩阵。
另请参见 setMatrix().
QTransform::QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
构造一个矩阵,元素为m11,m12,m13,m21,m22,m23,m31,m32,m33 。
另请参见 setMatrix() 。
qreal QTransform::m11() const
返回水平缩放因子。
另请参阅 scale() 和Basic Matrix Operations 。
qreal QTransform::m12() const
返回垂直剪切因数。
另请参见 shear() 和Basic Matrix Operations 。
qreal QTransform::m13() const
返回水平投影系数。
另请参阅 translate() 和Basic Matrix Operations 。
qreal QTransform::m21() const
返回水平剪切因数。
另请参阅 shear() 和Basic Matrix Operations 。
qreal QTransform::m22() const
返回垂直缩放因子。
另请参阅 scale() 和Basic Matrix Operations 。
qreal QTransform::m23() const
返回垂直投影系数。
另请参阅 translate() 和Basic Matrix Operations 。
qreal QTransform::m31() const
返回水平平移系数。
另请参阅 dx(),translate() 和Basic Matrix Operations 。
qreal QTransform::m32() const
返回垂直平移因子。
另请参阅 dy(),translate() 和Basic Matrix Operations 。
qreal QTransform::m33() const
返回除法因子。
另请参阅 translate() 和Basic Matrix Operations 。
QTransform QTransform::adjoint() const
返回此矩阵的邻接值。
qreal QTransform::determinant() const
返回矩阵的行列式。
qreal QTransform::dx() const
返回水平平移系数。
另请参阅 m31(),translate() 和Basic Matrix Operations 。
qreal QTransform::dy() const
返回垂直平移系数。
另请参阅 translate() 和Basic Matrix Operations 。
[static]
QTransform QTransform::fromScale(qreal sx, qreal sy)
创建一个矩阵,对应于sx 水平缩放和sy 垂直缩放。这与QTransform().scale(sx, sy) 相同,但速度稍快。
[static]
QTransform QTransform::fromTranslate(qreal dx, qreal dy)
创建一个矩阵,对应于dx 沿 x 轴平移和dy 沿 y 轴平移。这与QTransform().translate(dx, dy) 相同,但速度稍快。
QTransform QTransform::inverted(bool *invertible = nullptr) const
返回此矩阵的反转副本。
如果矩阵是奇异矩阵(不可反转),则返回的矩阵为同一矩阵。如果invertible 有效(即不为 0),则如果矩阵可逆,其值将设为 true,否则设为 false。
另请参见 isInvertible().
bool QTransform::isAffine() const
如果矩阵代表仿射变换,则返回true
,否则返回false
。
bool QTransform::isIdentity() const
如果矩阵是同位矩阵,则返回true
,否则返回false
。
另请参见 reset() 。
bool QTransform::isInvertible() const
如果矩阵可逆,则返回true
,否则返回false
。
另请参见 inverted() 。
bool QTransform::isRotating() const
如果矩阵表示某种旋转变换,则返回true
,否则返回false
。
注: 180 度和/或 360 度的旋转变换被视为缩放变换。
另请参见 reset()。
bool QTransform::isScaling() const
如果矩阵表示缩放变换,则返回true
,否则返回false
。
另请参见 reset() 。
bool QTransform::isTranslating() const
如果矩阵表示平移变换,则返回true
,否则返回false
。
另请参见 reset() 。
void QTransform::map(qreal x, qreal y, qreal *tx, qreal *ty) const
将给定的坐标x 和y 映射到此矩阵定义的坐标系中。得到的值分别放入 *tx 和 *ty 。
坐标转换使用以下公式:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
(x, y) 为原点,(x', y') 为转换后的点。
另请参见 Basic Matrix Operations 。
QLine QTransform::map(const QLine &l) const
这是一个重载函数。
创建并返回一个QLineF 对象,它是将给定直线l 映射到此矩阵定义的坐标系中的副本。
QLineF QTransform::map(const QLineF &line) const
这是一个重载函数。
创建并返回一个QLine 对象,它是给定line 的副本,并映射到此矩阵定义的坐标系中。请注意,转换后的坐标将四舍五入为最接近的整数。
QPainterPath QTransform::map(const QPainterPath &path) const
这是一个重载函数。
创建并返回一个QPainterPath 对象,它是给定path 的副本,映射到此矩阵定义的坐标系中。
QPoint QTransform::map(const QPoint &point) const
这是一个重载函数。
创建并返回一个QPoint 对象,它是给定point 的副本,并映射到此矩阵定义的坐标系中。请注意,转换后的坐标将四舍五入为最接近的整数。
QPointF QTransform::map(const QPointF &p) const
这是一个重载函数。
创建并返回一个QPointF 对象,它是给定点p 的副本,并映射到此矩阵定义的坐标系中。
QPolygon QTransform::map(const QPolygon &polygon) const
这是一个重载函数。
创建并返回一个QPolygon 对象,它是给定polygon 的副本,并映射到此矩阵定义的坐标系中。请注意,转换后的坐标将四舍五入为最接近的整数。
QPolygonF QTransform::map(const QPolygonF &polygon) const
这是一个重载函数。
创建并返回一个QPolygonF 对象,它是给定polygon 的副本,映射到此矩阵定义的坐标系中。
QRegion QTransform::map(const QRegion ®ion) const
这是一个重载函数。
创建并返回一个QRegion 对象,它是给定region 的副本,映射到此矩阵定义的坐标系中。
如果使用旋转或剪切,调用此方法的代价可能会很高。
void QTransform::map(int x, int y, int *tx, int *ty) const
这是一个重载函数。
将给定的坐标x 和y 映射到此矩阵定义的坐标系中。得到的值分别放入 *tx 和 *ty 。请注意,转换后的坐标将四舍五入为最接近的整数。
QRectF QTransform::mapRect(const QRectF &rectangle) const
创建并返回一个QRectF 对象,它是给定rectangle 的副本,并映射到此矩阵定义的坐标系中。
矩形的坐标将根据以下公式进行转换:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
如果指定了旋转或剪切,此函数将返回边界矩形。若要获取rectangle 映射到的确切区域,请使用mapToPolygon() 函数。
另请参见 mapToPolygon() 和Basic Matrix Operations 。
QRect QTransform::mapRect(const QRect &rectangle) const
这是一个重载函数。
创建并返回一个QRect 对象,它是给定rectangle 的副本,并映射到此矩阵定义的坐标系中。请注意,转换后的坐标将四舍五入为最接近的整数。
QPolygon QTransform::mapToPolygon(const QRect &rectangle) const
创建并返回给定rectangle 的QPolygon 表示,并映射到此矩阵定义的坐标系中。
矩形坐标的变换公式如下:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
多边形和矩形在转换时的表现略有不同(由于整数舍入),因此matrix.map(QPolygon(rectangle))
并不总是与matrix.mapToPolygon(rectangle)
相同。
另请参见 mapRect() 和Basic Matrix Operations 。
[static]
bool QTransform::quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans)
创建一个变换矩阵trans ,将一个四边多边形one 映射到另一个四边多边形two 。如果转换可行,则返回true
;否则返回 false。
这是一个结合了quadToSquare() 和squareToQuad() 方法的便捷方法。它允许将输入的四边形转换为任何其他四边形。
另请参阅 squareToQuad() 和quadToSquare()。
[static]
bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
创建一个变换矩阵trans ,将四边多边形quad 映射到单位正方形。如果转换已构建,则返回true
;如果不存在这种转换,则返回 false。
另请参阅 squareToQuad() 和quadToQuad()。
void QTransform::reset()
将矩阵重置为标识矩阵,即除了m11
和m22
(指定标度)以及m33
设置为 1 外,所有元素均设置为 0。
另请参阅 QTransform(),isIdentity() 和Basic Matrix Operations 。
[since 6.5]
QTransform &QTransform::rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
围绕距离屏幕distanceToPlane 的指定axis ,以给定角度逆时针旋转坐标系a ,并返回对矩阵的引用。
请注意,如果将QTransform 应用于以 widget 坐标定义的点,旋转方向将是顺时针,因为 Y 轴指向下方。
角度以度为单位指定。
如果distanceToPlane 为零,则会被忽略。这适用于实现正交投影,在这种情况下,z 坐标应被放弃而不是投影。
此函数在 Qt 6.5 中引入。
另请参阅 setMatrix().
QTransform &QTransform::rotate(qreal a, Qt::Axis axis = Qt::ZAxis)
这是一个重载函数。
围绕距离屏幕 1024.0 的指定axis ,以给定角度逆时针旋转坐标系a ,并返回对矩阵的引用。
请注意,如果将QTransform 应用于以 widget 坐标定义的点,旋转方向将是顺时针,因为 Y 轴指向下方。
角度以度为单位指定。
另请参阅 setMatrix 。
[since 6.5]
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)
围绕距离屏幕distanceToPlane 的指定axis ,以给定角度逆时针旋转坐标系a ,并返回对矩阵的引用。
请注意,如果将QTransform 应用于以 widget 坐标定义的点,旋转方向将是顺时针,因为 Y 轴指向下方。
角度的单位是弧度。
如果distanceToPlane 为零,则会被忽略。这适用于实现正交投影,在这种情况下,z 坐标应被放弃而不是投影。
此函数在 Qt 6.5 中引入。
另请参见 setMatrix()。
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis)
这是一个重载函数。
围绕距离屏幕 1024.0 的指定axis ,以给定角度逆时针旋转坐标系a ,并返回对矩阵的引用。
请注意,如果将QTransform 应用于以 widget 坐标定义的点,旋转方向将是顺时针,因为 Y 轴指向下方。
角度的单位是弧度。
另请参阅 setMatrix().
QTransform &QTransform::scale(qreal sx, qreal sy)
通过sx 水平和sy 垂直缩放坐标系,并返回对矩阵的引用。
另请参见 setMatrix().
void QTransform::setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
将矩阵元素设置为指定值m11,m12,m13 m21 ,m22,m23 m31 ,m32 和m33 。QTransform 提供了translate(),rotate(),scale() 和shear() 方便函数,用于根据当前定义的坐标系操作各种矩阵元素。
另请参见 QTransform()。
QTransform &QTransform::shear(qreal sh, qreal sv)
通过sh 水平剪切坐标系,sv 垂直剪切坐标系,并返回对矩阵的引用。
另请参见 setMatrix().
[static]
bool QTransform::squareToQuad(const QPolygonF &quad, QTransform &trans)
创建一个将单位正方形映射为四边多边形的变换矩阵trans ,quad 。如果转换已构建,则返回true
;如果不存在这种转换,则返回 false。
另请参阅 quadToSquare() 和quadToQuad()。
QTransform &QTransform::translate(qreal dx, qreal dy)
沿 x 轴移动坐标系dx ,沿 y 轴移动坐标系dy ,并返回对矩阵的引用。
另请参见 setMatrix().
QTransform QTransform::transposed() const
返回此矩阵的转置。
QTransform::TransformationType QTransform::type() const
返回此矩阵的变换类型。
变换类型是矩阵所有变换的最高枚举值。例如,如果矩阵同时具有缩放和剪切功能,则类型为TxShear
,因为TxShear
的枚举值高于TxScale
。
了解矩阵的变换类型对优化非常有用:处理特定类型往往比处理一般情况更优化。
QVariant QTransform::operator QVariant() const
返回变换的QVariant 。
bool QTransform::operator!=(const QTransform &matrix) const
如果该矩阵不等于给定的matrix ,则返回true
,否则返回false
。
QTransform QTransform::operator*(const QTransform &matrix) const
返回此矩阵与给定matrix 相乘的结果。
请注意,矩阵乘法不是交换式,即 a*b != b*a。
QTransform &QTransform::operator*=(const QTransform &matrix)
这是一个重载函数。
返回此矩阵与给定matrix 相乘的结果。
QTransform &QTransform::operator*=(qreal scalar)
这是一个重载函数。
返回此矩阵与给定的scalar 进行元素相乘的结果。
QTransform &QTransform::operator+=(qreal scalar)
这是一个重载函数。
返回将给定的scalar 与此矩阵的每个元素相加后得到的矩阵。
QTransform &QTransform::operator-=(qreal scalar)
这是一个重载函数。
返回从该矩阵的每个元素减去给定的scalar 后得到的矩阵。
QTransform &QTransform::operator/=(qreal scalar)
这是一个重载函数。
返回此矩阵与给定scalar 进行元素相除的结果。
[noexcept]
QTransform &QTransform::operator=(const QTransform &matrix)
将给定的matrix 值赋值给该矩阵。
bool QTransform::operator==(const QTransform &matrix) const
如果此矩阵等于给定的matrix ,则返回true
,否则返回false
。
相关非会员
[noexcept]
bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
如果t1 和t2 相等,则返回true
,允许在浮点比较中使用较小的模糊系数;否则返回 false。
[noexcept]
size_t qHash(const QTransform &key, size_t seed = 0)
返回key 的哈希值,使用seed 作为计算的种子。
QLine operator*(const QLine &line, const QTransform &matrix)
这与matrix.map(line) 相同。
另请参见 QTransform::map().
QLineF operator*(const QLineF &line, const QTransform &matrix)
这与matrix.map(line) 相同。
另请参见 QTransform::map().
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
这与matrix.map(path) 相同。
另请参见 QTransform::map().
QPoint operator*(const QPoint &point, const QTransform &matrix)
这与matrix.map(point) 相同。
另请参见 QTransform::map().
QPointF operator*(const QPointF &point, const QTransform &matrix)
与matrix.map(point) 相同。
另请参见 QTransform::map().
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
这与matrix.map(polygon) 相同。
另请参见 QTransform::map().
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
这与matrix.map(polygon) 相同。
另请参见 QTransform::map().
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
这与matrix.map(region) 相同。
另请参见 QTransform::map().
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
将给定的matrix 写入给定的stream ,并返回对该数据流的引用。
另请参阅 序列化 Qt 数据类型。
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
从给定的stream 中读取给定的matrix ,并返回对该数据流的引用。
另请参阅 序列化 Qt 数据类型。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.