QTransform Class
La clase QTransform especifica transformaciones 2D de un sistema de coordenadas. Más...
| Cabecera: | #include <QTransform> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Lista de todos los miembros, incluyendo los heredados
- QTransform es parte de Clases de Pintura.
Tipos Públicos
| enum | TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject } |
Funciones Públicas
| 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 |
| 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 |
Miembros Públicos Estáticos
| 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) |
No Miembros Relacionados
| 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) |
Descripción Detallada
Una transformación especifica cómo trasladar, escalar, cizallar, rotar o proyectar el sistema de coordenadas, y se utiliza normalmente al renderizar gráficos.
Un objeto QTransform puede ser construido usando las funciones setMatrix(), scale(), rotate(), translate() y shear(). Alternativamente, puede construirse aplicando basic matrix operations. La matriz también se puede definir cuando se construye, y se puede restablecer a la matriz identidad (por defecto) utilizando la función reset().
La clase QTransform soporta el mapeo de primitivas gráficas: Un punto, una línea, un polígono, una región o un trazado de pintor se pueden asignar al sistema de coordenadas definido por esta matriz mediante la función map(). En el caso de un rectángulo, sus coordenadas pueden transformarse mediante la función mapRect(). Un rectángulo también puede transformarse en un polígono (mapeado al sistema de coordenadas definido por esta matriz), utilizando la función mapToPolygon().
QTransform proporciona la función isIdentity(), que devuelve true si la matriz es la matriz identidad, y la función isInvertible(), que devuelve true si la matriz es no singular (es decir, AB = BA = I). La función inverted() devuelve una copia invertida de esta matriz si es invertible (en caso contrario devuelve la matriz identidad), y adjoint() devuelve el adjunto clásico de la matriz. Además, QTransform proporciona la función determinant(), que devuelve el determinante de la matriz.
Por último, la clase QTransform admite la multiplicación, suma y resta de matrices, y los objetos de la clase pueden transmitirse y compararse.
Representación de gráficos
Al renderizar gráficos, la matriz define las transformaciones pero la transformación real es realizada por las rutinas de dibujo en QPainter.
Por defecto, QPainter opera en el propio sistema de coordenadas del dispositivo asociado. El sistema de coordenadas estándar de un QPaintDevice tiene su origen situado en la posición superior izquierda. Los valores x aumentan hacia la derecha; los valores y aumentan hacia abajo. Para una descripción completa, consulte la documentación del sistema de coordenadas.
QPainter tiene funciones para trasladar, escalar, cizallar y rotar el sistema de coordenadas sin utilizar una QTransform. Por ejemplo:
![]() | 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"); } |
Aunque estas funciones son muy convenientes, puede ser más eficiente construir una QTransform y llamar a QPainter::setTransform() si quieres realizar más de una operación de transformación. Por ejemplo
![]() | 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"); } |
Operaciones matriciales básicas

Un objeto QTransform contiene una matriz de 3 x 3. Los elementos m31 (dx) y m32 (dy) especifican la traslación horizontal y vertical. Los elementos m11 y m22 especifican la escala horizontal y vertical. Los elementos m21 y m12 especifican el cizallamiento horizontal y vertical. Por último, los elementos m13 y m23 especifican la proyección horizontal y vertical, con m33 como factor de proyección adicional.
QTransform transforma un punto del plano en otro punto utilizando las siguientes fórmulas:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}El punto (x, y) es el punto original, y (x', y') es el punto transformado. (x', y') puede transformarse de nuevo a (x, y) realizando la misma operación en la matriz inverted().
Los distintos elementos de la matriz pueden establecerse al construir la matriz o utilizando posteriormente la función setMatrix(). También pueden manipularse utilizando las funciones de conveniencia translate(), rotate(), scale() y shear(). Los valores actuales pueden recuperarse mediante las funciones m11(), m12(), m13(), m21(), m22(), m23(), m31(), m32(), m33(), dx() y dy().
La traslación es la transformación más sencilla. Estableciendo dx y dy se moverá el sistema de coordenadas dx unidades a lo largo del eje X y dy unidades a lo largo del eje Y. El escalado puede realizarse ajustando m11 y m22. Por ejemplo, configurando m11 a 2 y m22 a 1.5 duplicará la altura y aumentará la anchura en un 50%. La matriz de identidad tiene m11, m22, y m33 ajustados a 1 (todos los demás están ajustados a 0) mapeando un punto a sí mismo. El cizallamiento se controla mediante m12 y m21. Si estos elementos tienen un valor distinto de cero, el sistema de coordenadas se tuerce. La rotación se consigue ajustando tanto los factores de cizallamiento como los factores de escala. La transformación en perspectiva se consigue estableciendo tanto los factores de proyección como los factores de escala.
Combinar transformaciones
Aquí está el ejemplo de transformaciones combinadas usando operaciones matriciales básicas:
![]() | 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"); } |
La transformación combinada primero escala cada operando, luego lo rota y, por último, lo traslada, igual que en el orden en que se escribe el producto de sus factores. Esto significa que el punto al que se aplican las transformaciones se multiplica implícitamente a la izquierda con la transformación a su derecha.
Relación con la notación matricial
La notación matricial de QTransform es la transposición de una convención común que representa las transformaciones y los puntos como matrices y vectores. Esa convención multiplica su matriz a la izquierda y su vector columna a la derecha. En otras palabras, cuando se aplican varias transformaciones a un punto, la matriz situada más a la derecha actúa primero directamente sobre el vector. A continuación, la siguiente matriz a la izquierda actúa sobre el resultado de la primera operación, y así sucesivamente. Como resultado, esa convención multiplica las matrices que forman una transformación compuesta en el orden inverso al de QTransform, como se puede ver en Combining Transforms. Transponer las matrices, y combinarlas a la derecha de un vector fila que representa el punto, permite que las matrices de transformaciones aparezcan, en su producto, en el orden en que pensamos en las transformaciones que se aplican al punto.
Vea también QPainter, Sistema de Coordenadas, Ejemplo de Transformaciones Afines, y Ejemplo de Transformaciones.
Documentación de tipos de miembros
enum QTransform::TransformationType
| Constante | Valor |
|---|---|
QTransform::TxNone | 0x00 |
QTransform::TxTranslate | 0x01 |
QTransform::TxScale | 0x02 |
QTransform::TxRotate | 0x04 |
QTransform::TxShear | 0x08 |
QTransform::TxProject | 0x10 |
Documentación de la función miembro
QTransform::QTransform()
Construye una matriz de identidad.
Todos los elementos se ponen a cero excepto m11 y m22 (especificando la escala) y m33 que se ponen a 1.
Véase también reset().
QTransform::QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
Construye una matriz con los elementos, m11, m12, m21, m22, dx y dy.
Véase también setMatrix().
QTransform::QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Construye una matriz con los elementos, m11, m12, m13, m21, m22, m23, m31, m32, m33.
Véase también setMatrix().
qreal QTransform::m11() const
Devuelve el factor de escala horizontal.
Véase también scale() y Basic Matrix Operations.
qreal QTransform::m12() const
Devuelve el factor de cizalladura vertical.
Véase también shear() y Basic Matrix Operations.
qreal QTransform::m13() const
Devuelve el factor de proyección horizontal.
Véase también translate() y Basic Matrix Operations.
qreal QTransform::m21() const
Devuelve el factor de cizalladura horizontal.
Véase también shear() y Basic Matrix Operations.
qreal QTransform::m22() const
Devuelve el factor de escala vertical.
Véase también scale() y Basic Matrix Operations.
qreal QTransform::m23() const
Devuelve el factor de proyección vertical.
Véase también translate() y Basic Matrix Operations.
qreal QTransform::m31() const
Devuelve el factor de traslación horizontal.
Véase también dx(), translate() y Basic Matrix Operations.
qreal QTransform::m32() const
Devuelve el factor de traslación vertical.
Véase también dy(), translate() y Basic Matrix Operations.
qreal QTransform::m33() const
Devuelve el factor de división.
Véase también translate() y Basic Matrix Operations.
QTransform QTransform::adjoint() const
Devuelve el adjunto de esta matriz.
qreal QTransform::determinant() const
Devuelve el determinante de la matriz.
qreal QTransform::dx() const
Devuelve el factor de traslación horizontal.
Véase también m31(), translate() y Basic Matrix Operations.
qreal QTransform::dy() const
Devuelve el factor de traslación vertical.
Véase también translate() y Basic Matrix Operations.
[static] QTransform QTransform::fromScale(qreal sx, qreal sy)
Crea una matriz que corresponde a una escala de sx horizontalmente y sy verticalmente. Esto es lo mismo que QTransform().scale(sx, sy) pero ligeramente más rápido.
[static] QTransform QTransform::fromTranslate(qreal dx, qreal dy)
Crea una matriz que corresponde a una traslación de dx a lo largo del eje x y dy a lo largo del eje y. Esto es lo mismo que QTransform().translate(dx, dy) pero ligeramente más rápido.
QTransform QTransform::inverted(bool *invertible = nullptr) const
Devuelve una copia invertida de esta matriz.
Si la matriz es singular (no invertible), la matriz devuelta es la matriz identidad. Si invertible es válido (es decir, no es 0), su valor se establece en verdadero si la matriz es invertible, de lo contrario se establece en falso.
Véase también isInvertible().
bool QTransform::isAffine() const
Devuelve true si la matriz representa una transformación afín, en caso contrario devuelve false.
bool QTransform::isIdentity() const
Devuelve true si la matriz es la matriz identidad, en caso contrario devuelve false.
Véase también reset().
bool QTransform::isInvertible() const
Devuelve true si la matriz es invertible, en caso contrario devuelve false.
Véase también inverted().
bool QTransform::isRotating() const
Devuelve true si la matriz representa algún tipo de transformación de rotación, en caso contrario devuelve false.
Nota: Una transformación de rotación de 180 grados y/o 360 grados se trata como una transformación de escala.
Véase también reset().
bool QTransform::isScaling() const
Devuelve true si la matriz representa una transformación de escala, en caso contrario devuelve false.
Véase también reset().
bool QTransform::isTranslating() const
Devuelve true si la matriz representa una transformación de traslación, en caso contrario devuelve false.
Véase también reset().
void QTransform::map(qreal x, qreal y, qreal *tx, qreal *ty) const
Mapea las coordenadas dadas x y y en el sistema de coordenadas definido por esta matriz. Los valores resultantes se colocan en *tx y *ty, respectivamente.
Las coordenadas se transforman utilizando las siguientes fórmulas:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}El punto (x, y) es el punto original, y (x', y') es el punto transformado.
Véase también Basic Matrix Operations.
QLine QTransform::map(const QLine &l) const
Crea y devuelve un objeto QLineF que es una copia de la línea dada, l, mapeada en el sistema de coordenadas definido por esta matriz.
Se trata de una función sobrecargada.
QLineF QTransform::map(const QLineF &line) const
Crea y devuelve un objeto QLine que es una copia del line dado , mapeado en el sistema de coordenadas definido por esta matriz. Tenga en cuenta que las coordenadas transformadas se redondean al entero más próximo.
Se trata de una función sobrecargada.
QPainterPath QTransform::map(const QPainterPath &path) const
Crea y devuelve un objeto QPainterPath que es una copia del path dado, mapeado en el sistema de coordenadas definido por esta matriz.
Se trata de una función sobrecargada.
QPoint QTransform::map(const QPoint &point) const
Crea y devuelve un objeto QPoint que es una copia del point dado , mapeado en el sistema de coordenadas definido por esta matriz. Tenga en cuenta que las coordenadas transformadas se redondean al entero más próximo.
Se trata de una función sobrecargada.
QPointF QTransform::map(const QPointF &p) const
Crea y devuelve un objeto QPointF que es una copia del punto dado, p, mapeado en el sistema de coordenadas definido por esta matriz.
Se trata de una función sobrecargada.
QPolygon QTransform::map(const QPolygon &polygon) const
Crea y devuelve un objeto QPolygon que es una copia del polygon dado , mapeado en el sistema de coordenadas definido por esta matriz. Tenga en cuenta que las coordenadas transformadas se redondean al entero más próximo.
Se trata de una función sobrecargada.
QPolygonF QTransform::map(const QPolygonF &polygon) const
Crea y devuelve un objeto QPolygonF que es una copia del polygon dado, mapeado en el sistema de coordenadas definido por esta matriz.
Se trata de una función sobrecargada.
QRegion QTransform::map(const QRegion ®ion) const
Crea y devuelve un objeto QRegion que es una copia del region dado, mapeado en el sistema de coordenadas definido por esta matriz.
Llamar a este método puede ser bastante caro si se utilizan rotaciones o cizallamientos.
Se trata de una función sobrecargada.
void QTransform::map(int x, int y, int *tx, int *ty) const
Mapea las coordenadas dadas x y y en el sistema de coordenadas definido por esta matriz. Los valores resultantes se colocan en *tx y *ty, respectivamente. Tenga en cuenta que las coordenadas transformadas se redondean al entero más cercano.
Se trata de una función sobrecargada.
QRectF QTransform::mapRect(const QRectF &rectangle) const
Crea y devuelve un objeto QRectF que es una copia del rectangle dado, mapeado en el sistema de coordenadas definido por esta matriz.
Las coordenadas del rectángulo se transforman utilizando las siguientes fórmulas:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}Si se ha especificado rotación o cizalladura, esta función devuelve el rectángulo delimitador. Para obtener la región exacta a la que se refiere rectangle, utilice la función mapToPolygon().
Véase también mapToPolygon() y Basic Matrix Operations.
QRect QTransform::mapRect(const QRect &rectangle) const
Crea y devuelve un objeto QRect que es una copia del rectangle dado , mapeado en el sistema de coordenadas definido por esta matriz. Tenga en cuenta que las coordenadas transformadas se redondean al entero más próximo.
Se trata de una función sobrecargada.
QPolygon QTransform::mapToPolygon(const QRect &rectangle) const
Crea y devuelve una representación QPolygon del rectangle dado, mapeado en el sistema de coordenadas definido por esta matriz.
Las coordenadas del rectángulo se transforman utilizando las siguientes fórmulas:
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}Los polígonos y los rectángulos se comportan de forma ligeramente diferente cuando se transforman (debido al redondeo de enteros), por lo que matrix.map(QPolygon(rectangle)) no siempre es lo mismo que matrix.mapToPolygon(rectangle).
Véase también mapRect() y Basic Matrix Operations.
[static] bool QTransform::quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans)
Crea una matriz de transformación, trans, que mapea un polígono de cuatro lados, one, a otro polígono de cuatro lados, two. Devuelve true si la transformación es posible; en caso contrario devuelve false.
Este método combina los métodos quadToSquare() y squareToQuad(). Permite transformar el cuadrado de entrada en cualquier otro cuadrado.
Véase también squareToQuad() y quadToSquare().
[static] bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
Crea una matriz de transformación, trans, que mapea un polígono de cuatro lados, quad, a un cuadrado unitario. Devuelve true si la transformación está construida o false si tal transformación no existe.
Véase también squareToQuad() y quadToQuad().
void QTransform::reset()
Restablece la matriz a una matriz de identidad, es decir, todos los elementos se ponen a cero, excepto m11 y m22 (especificando la escala) y m33 que se ponen a 1.
Véase también QTransform(), isIdentity(), y Basic Matrix Operations.
[since 6.5] QTransform &QTransform::rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
Rota el sistema de coordenadas en el sentido contrario a las agujas del reloj el ángulo dado a alrededor del punto especificado axis a la distancia distanceToPlane de la pantalla y devuelve una referencia a la matriz.
Tenga en cuenta que si aplica un QTransform a un punto definido en coordenadas widget, la dirección de la rotación será en el sentido de las agujas del reloj porque el eje y apunta hacia abajo.
El ángulo se especifica en grados.
Si distanceToPlane es cero, se ignorará. Esto es adecuado para implementar proyecciones ortográficas en las que la coordenada z debe ser descartada en lugar de proyectada.
Esta función se introdujo en Qt 6.5.
Véase también setMatrix().
QTransform &QTransform::rotate(qreal a, Qt::Axis axis = Qt::ZAxis)
Rota el sistema de coordenadas en el sentido contrario a las agujas del reloj en el ángulo dado a alrededor del axis especificado a una distancia de 1024.0 de la pantalla y devuelve una referencia a la matriz.
Tenga en cuenta que si aplica un QTransform a un punto definido en coordenadas widget, la dirección de la rotación será en el sentido de las agujas del reloj porque el eje y apunta hacia abajo.
El ángulo se especifica en grados.
Se trata de una función sobrecargada.
Véase también setMatrix.
[since 6.5] QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)
Rota el sistema de coordenadas en el sentido contrario a las agujas del reloj el ángulo dado a alrededor del punto especificado axis a la distancia distanceToPlane de la pantalla y devuelve una referencia a la matriz.
Tenga en cuenta que si aplica un QTransform a un punto definido en coordenadas widget, la dirección de la rotación será en el sentido de las agujas del reloj porque el eje y apunta hacia abajo.
El ángulo se especifica en radianes.
Si distanceToPlane es cero, se ignorará. Esto es adecuado para implementar proyecciones ortográficas en las que la coordenada z debe ser descartada en lugar de proyectada.
Esta función se introdujo en Qt 6.5.
Véase también setMatrix().
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis)
Rota el sistema de coordenadas en el sentido contrario a las agujas del reloj en el ángulo dado a alrededor del axis especificado a una distancia de 1024.0 de la pantalla y devuelve una referencia a la matriz.
Tenga en cuenta que si aplica un QTransform a un punto definido en coordenadas widget, la dirección de la rotación será en el sentido de las agujas del reloj porque el eje y apunta hacia abajo.
El ángulo se especifica en radianes.
Se trata de una función sobrecargada.
Véase también setMatrix().
QTransform &QTransform::scale(qreal sx, qreal sy)
Escala el sistema de coordenadas en sx horizontalmente y sy verticalmente, y devuelve una referencia a la matriz.
Véase también setMatrix().
void QTransform::setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Establece los elementos de la matriz a los valores especificados, m11, m12, m13 m21 , m22, m23 m31 , m32 y m33. Observe que esta función sustituye a los valores anteriores. QTransform proporciona las funciones de conveniencia translate(), rotate(), scale() y shear() para manipular los distintos elementos de la matriz basándose en el sistema de coordenadas definido actualmente.
Véase también QTransform().
QTransform &QTransform::shear(qreal sh, qreal sv)
Corta el sistema de coordenadas en sh horizontalmente y sv verticalmente, y devuelve una referencia a la matriz.
Véase también setMatrix().
[static] bool QTransform::squareToQuad(const QPolygonF &quad, QTransform &trans)
Crea una matriz de transformación, trans, que asigna un cuadrado unitario a un polígono de cuatro lados, quad. Devuelve true si la transformación está construida o false si tal transformación no existe.
Véase también quadToSquare() y quadToQuad().
QTransform &QTransform::translate(qreal dx, qreal dy)
Mueve el sistema de coordenadas dx a lo largo del eje x y dy a lo largo del eje y, y devuelve una referencia a la matriz.
Véase también setMatrix().
QTransform QTransform::transposed() const
Devuelve la transposición de esta matriz.
QTransform::TransformationType QTransform::type() const
Devuelve el tipo de transformación de esta matriz.
El tipo de transformación es el valor de enumeración más alto que captura todas las transformaciones de la matriz. Por ejemplo, si la matriz escala y cizalla, el tipo sería TxShear, porque TxShear tiene un valor de enumeración mayor que TxScale.
Conocer el tipo de transformación de una matriz es útil para la optimización: a menudo se pueden manejar tipos específicos de forma más óptima que manejar el caso genérico.
QTransform::operator QVariant() const
Devuelve la transformación como QVariant.
bool QTransform::operator!=(const QTransform &matrix) const
Devuelve true si esta matriz no es igual a la dada matrix, en caso contrario devuelve false.
QTransform QTransform::operator*(const QTransform &matrix) const
Devuelve el resultado de multiplicar esta matriz por la dada matrix.
Tenga en cuenta que la multiplicación de matrices no es conmutativa, es decir, a*b != b*a.
QTransform &QTransform::operator*=(const QTransform &matrix)
Devuelve el resultado de multiplicar esta matriz por matrix.
Se trata de una función sobrecargada.
QTransform &QTransform::operator*=(qreal scalar)
Devuelve el resultado de realizar una multiplicación por elementos de esta matriz con la dirección scalar.
Se trata de una función sobrecargada.
QTransform &QTransform::operator+=(qreal scalar)
Devuelve la matriz obtenida añadiendo el scalar dado a cada elemento de esta matriz.
QTransform &QTransform::operator-=(qreal scalar)
Devuelve la matriz obtenida restando el scalar dado de cada elemento de esta matriz.
QTransform &QTransform::operator/=(qreal scalar)
Devuelve el resultado de realizar una división elemento a elemento de esta matriz por la dirección scalar.
[noexcept] QTransform &QTransform::operator=(const QTransform &matrix)
Asigna los valores de matrix a esta matriz.
bool QTransform::operator==(const QTransform &matrix) const
Devuelve true si esta matriz es igual a la dada matrix, en caso contrario devuelve false.
No miembros relacionados
[noexcept] bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
Devuelve true si t1 y t2 son iguales, permitiendo un pequeño factor de imprecisión para comparaciones de punto flotante; falso en caso contrario.
[noexcept] size_t qHash(const QTransform &key, size_t seed = 0)
Devuelve el valor hash para key, utilizando seed para sembrar el cálculo.
QLine operator*(const QLine &line, const QTransform &matrix)
Esto es lo mismo que matrix.map(line).
Véase también QTransform::map().
QLineF operator*(const QLineF &line, const QTransform &matrix)
Esto es lo mismo que matrix.map(line).
Véase también QTransform::map().
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
Esto es lo mismo que matrix.map(path).
Véase también QTransform::map().
QPoint operator*(const QPoint &point, const QTransform &matrix)
Esto es lo mismo que matrix.map(point).
Véase también QTransform::map().
QPointF operator*(const QPointF &point, const QTransform &matrix)
Igual que matrix.map(point).
Véase también QTransform::map().
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
Esto es lo mismo que matrix.map(polygon).
Véase también QTransform::map().
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
Esto es lo mismo que matrix.map(polygon).
Véase también QTransform::map().
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
Esto es lo mismo que matrix.map(region).
Véase también QTransform::map().
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
Escribe el matrix dado en el stream dado y devuelve una referencia al flujo.
Véase también Serializar tipos de datos Qt.
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
Lee el matrix dado del stream dado y devuelve una referencia al flujo.
Véase también Serializar tipos de datos Qt.
© 2026 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.


