QTransform Class
La classe QTransform spécifie les transformations 2D d'un système de coordonnées. Plus d'informations...
| En-tête : | #include <QTransform> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
- Liste de tous les membres, y compris les membres hérités
- QTransform fait partie de Painting Classes.
Types publics
| enum | TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject } |
Fonctions publiques
| 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 |
Membres publics statiques
| 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) |
Non-membres apparentés
| 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) |
Description détaillée
Une transformation spécifie comment traduire, mettre à l'échelle, cisailler, faire pivoter ou projeter le système de coordonnées, et est généralement utilisée lors du rendu de graphiques.
Un objet QTransform peut être construit à l'aide des fonctions setMatrix(), scale(), rotate(), translate() et shear(). Il peut également être construit en appliquant basic matrix operations. La matrice peut également être définie lors de sa construction, et elle peut être réinitialisée à la matrice identité (par défaut) à l'aide de la fonction reset().
La classe QTransform prend en charge le mappage des primitives graphiques : Un point, une ligne, un polygone, une région ou un chemin de peinture donné peut être mis en correspondance avec le système de coordonnées défini par cette matrice à l'aide de la fonction map(). Dans le cas d'un rectangle, ses coordonnées peuvent être transformées à l'aide de la fonction mapRect(). Un rectangle peut également être transformé en polygone (mappé dans le système de coordonnées défini par cette matrice) à l'aide de la fonction mapToPolygon().
QTransform fournit la fonction isIdentity() qui renvoie true si la matrice est la matrice identité, et la fonction isInvertible() qui renvoie true si la matrice n'est pas singulière (c'est-à-dire AB = BA = I). La fonction inverted() renvoie une copie inversée de cette matrice si elle est inversible (sinon elle renvoie la matrice identité), et adjoint() renvoie l'adjoint classique de la matrice. En outre, QTransform fournit la fonction determinant() qui renvoie le déterminant de la matrice.
Enfin, la classe QTransform prend en charge la multiplication, l'addition et la soustraction de matrices, et les objets de la classe peuvent être transmis en continu et comparés.
Rendu graphique
Lors du rendu des graphiques, la matrice définit les transformations, mais la transformation réelle est effectuée par les routines de dessin dans QPainter.
Par défaut, QPainter utilise le système de coordonnées du périphérique associé. Le système de coordonnées standard d'un site QPaintDevice a son origine située en haut à gauche. Les valeurs x augmentent vers la droite ; les valeurs y augmentent vers le bas. Pour une description complète, voir la documentation sur le système de coordonnées.
QPainter possède des fonctions permettant de translater, de mettre à l'échelle, de cisailler et de faire pivoter le système de coordonnées sans utiliser de QTransform. Par exemple :
![]() | 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"); } |
Bien que ces fonctions soient très pratiques, il peut être plus efficace de construire une QTransform et d'appeler QPainter::setTransform() si vous souhaitez effectuer plus d'une opération de transformation. Par exemple :
![]() | 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"); } |
Opérations matricielles de base

Un objet QTransform contient une matrice 3 x 3. Les éléments m31 (dx) et m32 (dy) indiquent la translation horizontale et verticale. Les éléments m11 et m22 indiquent la mise à l'échelle horizontale et verticale. Les éléments m21 et m12 spécifient le cisaillement horizontal et vertical. Enfin, les éléments m13 et m23 spécifient la projection horizontale et verticale, avec m33 comme facteur de projection supplémentaire.
QTransform transforme un point du plan en un autre point à l'aide des formules suivantes :
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}Le point (x, y) est le point d'origine et (x', y') est le point transformé. (x', y') peut être retransformé en (x, y) en effectuant la même opération sur la matrice inverted().
Les différents éléments de la matrice peuvent être définis lors de la construction de la matrice ou en utilisant la fonction setMatrix() ultérieurement. Ils peuvent également être manipulés à l'aide des fonctions de commodité translate(), rotate(), scale() et shear(). Les valeurs actuellement définies peuvent être récupérées à l'aide des fonctions m11(), m12(), m13(), m21(), m22(), m23(), m31(), m32(), m33(), dx() et dy().
La traduction est la transformation la plus simple. Les paramètres dx et dy déplacent le système de coordonnées de dx unités le long de l'axe X et de dy unités le long de l'axe Y. La mise à l'échelle peut être effectuée en définissant m11 et m22. Par exemple, en fixant m11 à 2 et m22 à 1,5, la hauteur sera doublée et la largeur augmentée de 50 %. La matrice d'identité a m11, m22, et m33 réglés sur 1 (tous les autres sont réglés sur 0), ce qui permet de faire correspondre un point à lui-même. Le cisaillement est contrôlé par m12 et m21. En fixant ces éléments à des valeurs différentes de zéro, le système de coordonnées se tordra. La rotation est obtenue en définissant à la fois les facteurs de cisaillement et les facteurs d'échelle. La transformation en perspective est obtenue en définissant à la fois les facteurs de projection et les facteurs d'échelle.
Combinaison de transformations
Voici un exemple de transformation combinée utilisant les opérations matricielles de base :
![]() | 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 transformation combinée met d'abord à l'échelle chaque opérande, puis le fait pivoter et enfin le traduit, comme dans l'ordre dans lequel le produit de ses facteurs est écrit. Cela signifie que le point auquel les transformations sont appliquées est implicitement multiplié à gauche par la transformation à sa droite.
Relation avec la notation matricielle
La notation matricielle de QTransform est la transposition d'une convention couramment enseignée qui représente les transformations et les points sous forme de matrices et de vecteurs. Cette convention multiplie la matrice à gauche et le vecteur colonne à droite. En d'autres termes, lorsque plusieurs transformations sont appliquées à un point, la matrice la plus à droite agit d'abord directement sur le vecteur. Ensuite, la matrice suivante à gauche agit sur le résultat de la première opération, et ainsi de suite. Par conséquent, cette convention multiplie les matrices qui composent une transformation composite dans l'ordre inverse de celui de QTransform, comme vous pouvez le voir sur Combining Transforms. En transposant les matrices et en les combinant à droite d'un vecteur ligne qui représente le point, les matrices des transformations apparaissent, dans leur produit, dans l'ordre dans lequel nous pensons que les transformations sont appliquées au point.
Voir aussi QPainter, Système de coordonnées, Exemple de transformations affines, et Exemple de transformations.
Documentation sur les types de membres
enum QTransform::TransformationType
| Constante | Valeur |
|---|---|
QTransform::TxNone | 0x00 |
QTransform::TxTranslate | 0x01 |
QTransform::TxScale | 0x02 |
QTransform::TxRotate | 0x04 |
QTransform::TxShear | 0x08 |
QTransform::TxProject | 0x10 |
Documentation des fonctions membres
QTransform::QTransform()
Construit une matrice d'identité.
Tous les éléments sont mis à zéro sauf m11 et m22 (spécifiant l'échelle) et m33 qui sont mis à 1.
Voir aussi reset().
QTransform::QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
Construit une matrice avec les éléments m11, m12, m21, m22, dx et dy.
Voir aussi setMatrix().
QTransform::QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Construit une matrice avec les éléments m11, m12, m13, m21, m22, m23, m31, m32, m33.
Voir également setMatrix().
qreal QTransform::m11() const
Renvoie le facteur d'échelle horizontale.
Voir aussi scale() et Basic Matrix Operations.
qreal QTransform::m12() const
Renvoie le facteur de cisaillement vertical.
Voir aussi shear() et Basic Matrix Operations.
qreal QTransform::m13() const
Renvoie le facteur de projection horizontale.
Voir aussi translate() et Basic Matrix Operations.
qreal QTransform::m21() const
Renvoie le facteur de cisaillement horizontal.
Voir aussi shear() et Basic Matrix Operations.
qreal QTransform::m22() const
Renvoie le facteur d'échelle verticale.
Voir aussi scale() et Basic Matrix Operations.
qreal QTransform::m23() const
Renvoie le facteur de projection verticale.
Voir aussi translate() et Basic Matrix Operations.
qreal QTransform::m31() const
Renvoie le facteur de translation horizontale.
Voir aussi dx(), translate(), et Basic Matrix Operations.
qreal QTransform::m32() const
Renvoie le facteur de translation verticale.
Voir aussi dy(), translate(), et Basic Matrix Operations.
qreal QTransform::m33() const
Renvoie le facteur de division.
Voir aussi translate() et Basic Matrix Operations.
QTransform QTransform::adjoint() const
Renvoie l'adjoint de cette matrice.
qreal QTransform::determinant() const
Renvoie le déterminant de la matrice.
qreal QTransform::dx() const
Renvoie le facteur de translation horizontale.
Voir aussi m31(), translate(), et Basic Matrix Operations.
qreal QTransform::dy() const
Renvoie le facteur de translation verticale.
Voir aussi translate() et Basic Matrix Operations.
[static] QTransform QTransform::fromScale(qreal sx, qreal sy)
Crée une matrice qui correspond à une mise à l'échelle de sx horizontalement et de sy verticalement. C'est la même chose que QTransform().scale(sx, sy) mais un peu plus rapide.
[static] QTransform QTransform::fromTranslate(qreal dx, qreal dy)
Crée une matrice qui correspond à une translation de dx le long de l'axe x et de dy le long de l'axe y. C'est la même chose que QTransform().translate(dx, dy) mais un peu plus rapide.
QTransform QTransform::inverted(bool *invertible = nullptr) const
Renvoie une copie inversée de cette matrice.
Si la matrice est singulière (non inversible), la matrice retournée est la matrice identité. Si invertible est valide (c'est-à-dire différent de 0), sa valeur est fixée à true si la matrice est inversible, sinon elle est fixée à false.
Voir aussi isInvertible().
bool QTransform::isAffine() const
Renvoie true si la matrice représente une transformation affine, sinon renvoie false.
bool QTransform::isIdentity() const
Renvoie true si la matrice est la matrice identité, sinon renvoie false.
Voir aussi reset().
bool QTransform::isInvertible() const
Renvoie true si la matrice est inversible, sinon renvoie false.
Voir aussi inverted().
bool QTransform::isRotating() const
Renvoie true si la matrice représente une sorte de transformation rotative, sinon renvoie false.
Remarque : une transformation de rotation de 180 degrés et/ou 360 degrés est traitée comme une transformation de mise à l'échelle.
Voir aussi reset().
bool QTransform::isScaling() const
Renvoie true si la matrice représente une transformation d'échelle, sinon renvoie false.
Voir également reset().
bool QTransform::isTranslating() const
Renvoie true si la matrice représente une transformation de translation, sinon renvoie false.
Voir aussi reset().
void QTransform::map(qreal x, qreal y, qreal *tx, qreal *ty) const
Transpose les coordonnées x et y dans le système de coordonnées défini par cette matrice. Les valeurs résultantes sont placées dans *tx et *ty, respectivement.
Les coordonnées sont transformées à l'aide des formules suivantes :
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}Le point (x, y) est le point d'origine et (x', y') est le point transformé.
Voir aussi Basic Matrix Operations.
QLine QTransform::map(const QLine &l) const
Crée et renvoie un objet QLineF qui est une copie de la ligne donnée, l, dans le système de coordonnées défini par cette matrice.
Il s'agit d'une fonction surchargée.
QLineF QTransform::map(const QLineF &line) const
Crée et renvoie un objet QLine qui est une copie de l'objet line donné, transformé dans le système de coordonnées défini par cette matrice. Les coordonnées transformées sont arrondies à l'entier le plus proche.
Il s'agit d'une fonction surchargée.
QPainterPath QTransform::map(const QPainterPath &path) const
Crée et renvoie un objet QPainterPath qui est une copie de l'objet path donné, mappé dans le système de coordonnées défini par cette matrice.
Il s'agit d'une fonction surchargée.
QPoint QTransform::map(const QPoint &point) const
Crée et renvoie un objet QPoint qui est une copie de l'objet point donné, transformé dans le système de coordonnées défini par cette matrice. Les coordonnées transformées sont arrondies à l'entier le plus proche.
Il s'agit d'une fonction surchargée.
QPointF QTransform::map(const QPointF &p) const
Crée et renvoie un objet QPointF qui est une copie du point donné, p, dans le système de coordonnées défini par cette matrice.
Il s'agit d'une fonction surchargée.
QPolygon QTransform::map(const QPolygon &polygon) const
Crée et renvoie un objet QPolygon qui est une copie de l'objet polygon donné, transformé dans le système de coordonnées défini par cette matrice. Les coordonnées transformées sont arrondies à l'entier le plus proche.
Il s'agit d'une fonction surchargée.
QPolygonF QTransform::map(const QPolygonF &polygon) const
Crée et renvoie un objet QPolygonF qui est une copie de l'objet polygon donné, mappé dans le système de coordonnées défini par cette matrice.
Il s'agit d'une fonction surchargée.
QRegion QTransform::map(const QRegion ®ion) const
Crée et renvoie un objet QRegion qui est une copie de l'objet region donné, mappé dans le système de coordonnées défini par cette matrice.
L'appel à cette méthode peut être assez coûteux si des rotations ou des cisaillements sont utilisés.
Il s'agit d'une fonction surchargée.
void QTransform::map(int x, int y, int *tx, int *ty) const
Transpose les coordonnées x et y dans le système de coordonnées défini par cette matrice. Les valeurs résultantes sont placées dans *tx et *ty, respectivement. Les coordonnées transformées sont arrondies à l'entier le plus proche.
Il s'agit d'une fonction surchargée.
QRectF QTransform::mapRect(const QRectF &rectangle) const
Crée et renvoie un objet QRectF qui est une copie de l'objet rectangle donné, mappé dans le système de coordonnées défini par cette matrice.
Les coordonnées du rectangle sont transformées à l'aide des formules suivantes :
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 une rotation ou un cisaillement a été spécifié, cette fonction renvoie le rectangle de délimitation. Pour récupérer la région exacte à laquelle correspond le site rectangle, utilisez plutôt la fonction mapToPolygon().
Voir aussi mapToPolygon() et Basic Matrix Operations.
QRect QTransform::mapRect(const QRect &rectangle) const
Crée et renvoie un objet QRect qui est une copie de l'objet rectangle donné, transformé dans le système de coordonnées défini par cette matrice. Les coordonnées transformées sont arrondies à l'entier le plus proche.
Il s'agit d'une fonction surchargée.
QPolygon QTransform::mapToPolygon(const QRect &rectangle) const
Crée et renvoie une représentation QPolygon du rectangle donné rectangle, dans le système de coordonnées défini par cette matrice.
Les coordonnées du rectangle sont transformées à l'aide des formules suivantes :
x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (!isAffine()) {
w' = m13*x + m23*y + m33
x' /= w'
y' /= w'
}Les polygones et les rectangles se comportent légèrement différemment lorsqu'ils sont transformés (en raison de l'arrondissement des nombres entiers), de sorte que matrix.map(QPolygon(rectangle)) n'est pas toujours identique à matrix.mapToPolygon(rectangle).
Voir également mapRect() et Basic Matrix Operations.
[static] bool QTransform::quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans)
Crée une matrice de transformation, trans, qui fait correspondre un polygone à quatre côtés, one, à un autre polygone à quatre côtés, two. Renvoie true si la transformation est possible, sinon renvoie false.
Il s'agit d'une méthode de commodité combinant les méthodes quadToSquare() et squareToQuad(). Elle permet de transformer le quadrilatère d'entrée en n'importe quel autre quadrilatère.
Voir aussi squareToQuad() et quadToSquare().
[static] bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
Crée une matrice de transformation, trans, qui fait correspondre un polygone à quatre côtés, quad, à un carré. Retourne true si la transformation est construite ou false si une telle transformation n'existe pas.
Voir aussi squareToQuad() et quadToQuad().
void QTransform::reset()
Réinitialise la matrice à une matrice d'identité, c'est-à-dire que tous les éléments sont mis à zéro, à l'exception de m11 et m22 (spécifiant l'échelle) et m33 qui sont mis à 1.
Voir également QTransform(), isIdentity() et Basic Matrix Operations.
[since 6.5] QTransform &QTransform::rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
Fait pivoter le système de coordonnées dans le sens inverse des aiguilles d'une montre de l'angle donné a autour du point spécifié axis à la distance distanceToPlane de l'écran et renvoie une référence à la matrice.
Notez que si vous appliquez un QTransform à un point défini en coordonnées widget, la direction de la rotation sera dans le sens des aiguilles d'une montre car l'axe y pointe vers le bas.
L'angle est spécifié en degrés.
Si distanceToPlane est égal à zéro, il sera ignoré. Cette fonction convient à la mise en œuvre de projections orthographiques où la coordonnée z doit être supprimée plutôt que projetée.
Cette fonction a été introduite dans Qt 6.5.
Voir aussi setMatrix().
QTransform &QTransform::rotate(qreal a, Qt::Axis axis = Qt::ZAxis)
Fait pivoter le système de coordonnées dans le sens inverse des aiguilles d'une montre de l'angle donné a autour du point spécifié axis à une distance de 1024,0 de l'écran et renvoie une référence à la matrice.
Notez que si vous appliquez un QTransform à un point défini en coordonnées widget, la direction de la rotation sera dans le sens des aiguilles d'une montre car l'axe y pointe vers le bas.
L'angle est spécifié en degrés.
Il s'agit d'une fonction surchargée.
Voir également setMatrix.
[since 6.5] QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)
Fait pivoter le système de coordonnées dans le sens inverse des aiguilles d'une montre de l'angle donné a autour du point spécifié axis à la distance distanceToPlane de l'écran et renvoie une référence à la matrice.
Notez que si vous appliquez un QTransform à un point défini en coordonnées widget, la direction de la rotation sera dans le sens des aiguilles d'une montre car l'axe y pointe vers le bas.
L'angle est spécifié en radians.
Si distanceToPlane est égal à zéro, il sera ignoré. Cette fonction convient à la mise en œuvre de projections orthographiques où la coordonnée z doit être supprimée plutôt que projetée.
Cette fonction a été introduite dans Qt 6.5.
Voir aussi setMatrix().
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis)
Fait pivoter le système de coordonnées dans le sens inverse des aiguilles d'une montre de l'angle donné a autour du point spécifié axis à une distance de 1024,0 de l'écran et renvoie une référence à la matrice.
Notez que si vous appliquez un QTransform à un point défini en coordonnées widget, la direction de la rotation sera dans le sens des aiguilles d'une montre car l'axe y pointe vers le bas.
L'angle est spécifié en radians.
Il s'agit d'une fonction surchargée.
Voir également setMatrix().
QTransform &QTransform::scale(qreal sx, qreal sy)
Met à l'échelle le système de coordonnées par sx horizontalement et sy verticalement, et renvoie une référence à la matrice.
Voir aussi setMatrix().
void QTransform::setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Définit les éléments de la matrice aux valeurs spécifiées, m11, m12, m13 m21 , m22, m23 m31 , m32 et m33. Notez que cette fonction remplace les valeurs précédentes. QTransform fournit les fonctions de commodité translate(), rotate(), scale() et shear() pour manipuler les différents éléments de la matrice en fonction du système de coordonnées actuellement défini.
Voir également QTransform().
QTransform &QTransform::shear(qreal sh, qreal sv)
Coupe le système de coordonnées par sh horizontalement et sv verticalement, et renvoie une référence à la matrice.
Voir aussi setMatrix().
[static] bool QTransform::squareToQuad(const QPolygonF &quad, QTransform &trans)
Crée une matrice de transformation, trans, qui fait correspondre un carré à un polygone à quatre côtés, quad. Retourne true si la transformation est construite ou false si une telle transformation n'existe pas.
Voir aussi quadToSquare() et quadToQuad().
QTransform &QTransform::translate(qreal dx, qreal dy)
Déplace le système de coordonnées dx le long de l'axe x et dy le long de l'axe y, et renvoie une référence à la matrice.
Voir aussi setMatrix().
QTransform QTransform::transposed() const
Renvoie la transposition de cette matrice.
QTransform::TransformationType QTransform::type() const
Renvoie le type de transformation de cette matrice.
Le type de transformation est la valeur d'énumération la plus élevée capturant toutes les transformations de la matrice. Par exemple, si la matrice est à la fois échelonnée et cisaillée, le type serait TxShear, car TxShear a une valeur d'énumération plus élevée que TxScale.
Connaître le type de transformation d'une matrice est utile pour l'optimisation : vous pouvez souvent traiter des types spécifiques de manière plus optimale que le cas générique.
QTransform::operator QVariant() const
Retourne la transformation sous forme de QVariant.
bool QTransform::operator!=(const QTransform &matrix) const
Renvoie true si cette matrice n'est pas égale à la matrice donnée matrix, sinon renvoie false.
QTransform QTransform::operator*(const QTransform &matrix) const
Renvoie le résultat de la multiplication de cette matrice par la valeur donnée matrix.
Notez que la multiplication des matrices n'est pas commutative, c'est-à-dire que a*b != b*a.
QTransform &QTransform::operator*=(const QTransform &matrix)
Renvoie le résultat de la multiplication de cette matrice par la valeur donnée matrix.
Il s'agit d'une fonction surchargée.
QTransform &QTransform::operator*=(qreal scalar)
Renvoie le résultat de la multiplication par éléments de cette matrice avec la valeur donnée scalar.
Il s'agit d'une fonction surchargée.
QTransform &QTransform::operator+=(qreal scalar)
Renvoie la matrice obtenue en ajoutant la valeur scalar à chaque élément de cette matrice.
QTransform &QTransform::operator-=(qreal scalar)
Renvoie la matrice obtenue en soustrayant l'adresse scalar donnée de chaque élément de cette matrice.
QTransform &QTransform::operator/=(qreal scalar)
Renvoie le résultat de la division élément par élément de cette matrice par la valeur donnée scalar.
[noexcept] QTransform &QTransform::operator=(const QTransform &matrix)
Affecte les valeurs de matrix à cette matrice.
bool QTransform::operator==(const QTransform &matrix) const
Renvoie true si cette matrice est égale à la matrice donnée matrix, sinon renvoie false.
Non-membres apparentés
[noexcept] bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
Renvoie true si t1 et t2 sont égaux, en tenant compte d'un petit facteur de flou pour les comparaisons en virgule flottante ; faux dans le cas contraire.
[noexcept] size_t qHash(const QTransform &key, size_t seed = 0)
Renvoie la valeur de hachage pour key, en utilisant seed comme base de calcul.
QLine operator*(const QLine &line, const QTransform &matrix)
C'est la même chose que matrix.map(line).
Voir également QTransform::map().
QLineF operator*(const QLineF &line, const QTransform &matrix)
C'est la même chose que matrix.map(line).
Voir également QTransform::map().
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
C'est la même chose que matrix.map(path).
Voir également QTransform::map().
QPoint operator*(const QPoint &point, const QTransform &matrix)
C'est la même chose que matrix.map(point).
Voir également QTransform::map().
QPointF operator*(const QPointF &point, const QTransform &matrix)
Identique à matrix.map(point).
Voir également QTransform::map().
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
C'est la même chose que matrix.map(polygon).
Voir également QTransform::map().
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
C'est la même chose que matrix.map(polygon).
Voir également QTransform::map().
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
C'est la même chose que matrix.map(region).
Voir également QTransform::map().
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
Écrit la donnée matrix dans la donnée stream et renvoie une référence au flux.
Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
Lit la donnée matrix à partir de la donnée stream et renvoie une référence au flux.
Voir aussi Serializing Qt Data Types (Sérialisation des types de données 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.


