QTransform Class
La classe QTransform définit les transformations 2D d'un système de coordonnées. En savoir plus...
| 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 des classes de peinture.
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) | |
| QTransform(const QTransform &other) | |
| QTransform(QTransform &&other) | |
| 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=(QTransform &&other) |
| 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) |
Éléments non-membres associé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 translater, mettre à l'échelle, incliner, faire pivoter ou projeter le système de coordonnées ; elle est généralement utilisée lors du rendu graphique.
Un objet QTransform peut être créé à l'aide des fonctions setMatrix(), scale(), rotate(), translate() et shear(). Il est également possible de le créer en appliquant basic matrix operations. La matrice peut également être définie lors de la construction, et elle peut être réinitialisée à la matrice identité (valeur par défaut) à l'aide de la fonction reset().
La classe QTransform prend en charge la projection des primitives graphiques : un point, une ligne, un polygone, une région ou un tracé de dessin donné peut être projeté dans 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 est non singulière (c'est-à-dire AB = BA = I). La fonction ` inverted()` renvoie une copie inversée de cette matrice si celle-ci est inversible (sinon, elle renvoie la matrice identité), et ` adjoint()` renvoie l’adjoint classique de la matrice. De plus, 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 cette classe peuvent être transmis en flux continu et comparés.
Rendu graphique
Lors du rendu graphique, la matrice définit les transformations, mais la transformation proprement dite est effectuée par les routines de dessin de ` QPainter`.
Par défaut, la fonction ` QPainter ` opère sur le système de coordonnées propre au périphérique associé. Le système de coordonnées standard d’un ` QPaintDevice ` a son origine située en haut à gauche. Les valeurs x croissent vers la droite ; les valeurs y croissent vers le bas. Pour une description complète, consultez la documentation sur le système de coordonnées.
QPainter dispose de 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 :
![]() | |
Bien que ces fonctions soient très pratiques, il peut s’avérer plus efficace de créer un QTransform et d’appeler ` QPainter::setTransform()` si vous souhaitez effectuer plusieurs opérations de transformation. Par exemple :
![]() | |
Opérations matricielles de base

Un objet QTransform contient une matrice 3 × 3. Les éléments m31 (dx) et m32 (dy) spécifient la translation horizontale et verticale. Les éléments m11 et m22 spécifient 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 ultérieurement à l’aide de la fonction ` setMatrix()`. 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 translation est la transformation la plus simple. En définissant dx et dy, on déplace 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 s’effectue en définissant m11 et m22. Par exemple, en définissant m11 sur 2 et m22 sur 1,5, on double la hauteur et on augmente la largeur de 50 %. La matrice identité, dont les éléments m11, m22 et m33 sont définis à 1 (tous les autres sont définis à 0), mappe un point sur lui-même. Le cisaillement est contrôlé par m12 et m21. Définir ces éléments sur des valeurs différentes de zéro tordra le système de coordonnées. La rotation s’obtient en définissant à la fois les facteurs de cisaillement et les facteurs de mise à l’échelle. La transformation en perspective s’obtient en définissant à la fois les facteurs de projection et les facteurs d’échelle.
Combinaison de transformations
Voici un exemple de combinaisons de transformations utilisant des opérations matricielles de base :
![]() | |
La transformation combinée commence par mettre à l'échelle chaque opérande, puis le fait pivoter et enfin le translate, exactement dans l'ordre dans lequel s'écrit le produit de ses facteurs. Cela signifie que le point auquel s'appliquent les transformations est implicitement multiplié par la gauche par la transformation située à sa droite.
Lien avec la notation matricielle
La notation matricielle dans QTransform est l’inversée 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 de gauche par le vecteur colonne de droite. En d’autres termes, lorsque plusieurs transformations sont appliquées à un point, la matrice la plus à droite agit directement sur le vecteur en premier. Ensuite, la matrice suivante vers la 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 utilisé dans QTransform, comme vous pouvez le voir sur Combining Transforms. En transposant les matrices et en les combinant à droite d’un vecteur ligne représentant le point, on obtient que les matrices de transformation apparaissent, dans leur produit, dans l’ordre dans lequel on imagine que les transformations sont appliquées au point.
Voir également 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 sur les fonctions membres
QTransform::QTransform()
Crée une matrice identité.
Tous les éléments sont mis à zéro, à l'exception de m11 et m22 (qui spécifient l'échelle) ainsi que m33, qui sont mis à 1.
Voir également reset().
QTransform::QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
Crée une matrice dont les éléments sont : m11, m12, m21, m22, dx et dy.
Voir également setMatrix().
QTransform::QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
Crée une matrice dont les éléments sont : m11, m12, m13, m21, m22, m23, m31, m32, m33.
Voir également setMatrix().
[constexpr noexcept default] QTransform::QTransform(const QTransform &other)
Crée une instance d'QTransform par copie.
[constexpr noexcept default] QTransform::QTransform(QTransform &&other)
Crée par « move » une instance de ` QTransform`.
qreal QTransform::m11() const
Renvoie le facteur d'échelle horizontal.
Voir également scale() et Basic Matrix Operations.
qreal QTransform::m12() const
Renvoie le facteur de cisaillement vertical.
Voir également shear() et Basic Matrix Operations.
qreal QTransform::m13() const
Renvoie le facteur de projection horizontale.
Voir également translate() et Basic Matrix Operations.
qreal QTransform::m21() const
Renvoie le facteur de cisaillement horizontal.
Voir également shear() et Basic Matrix Operations.
qreal QTransform::m22() const
Renvoie le facteur d'échelle vertical.
Voir également scale() et Basic Matrix Operations.
qreal QTransform::m23() const
Renvoie le facteur de projection verticale.
Voir également translate() et Basic Matrix Operations.
qreal QTransform::m31() const
Renvoie le facteur de translation horizontale.
Voir également dx(), translate() et Basic Matrix Operations.
qreal QTransform::m32() const
Renvoie le facteur de translation verticale.
Voir également dy(), translate() et Basic Matrix Operations.
qreal QTransform::m33() const
Renvoie le facteur de division.
Voir également 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 également m31(), translate() et Basic Matrix Operations.
qreal QTransform::dy() const
Renvoie le facteur de translation verticale.
Voir également translate() et Basic Matrix Operations.
[static] QTransform QTransform::fromScale(qreal sx, qreal sy)
Crée une matrice correspondant à une mise à l'échelle de sx à l'horizontale et de sy à la verticale. Cette fonction est identique à QTransform().scale(sx, sy), mais légèrement plus rapide.
[static] QTransform QTransform::fromTranslate(qreal dx, qreal dy)
Crée une matrice correspondant à une translation de dx le long de l'axe x et de dy le long de l'axe y. Cette fonction est identique à QTransform().translate(dx, dy), mais légèrement 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 renvoyée est la matrice identité. Si invertible est valide (c'est-à-dire différent de 0), sa valeur est définie sur true si la matrice est inversible, sinon elle est définie sur false.
Voir également 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 également inverted().
bool QTransform::isRotating() const
Renvoie « true » si la matrice représente une transformation de rotation, 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 également 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 également reset().
void QTransform::map(qreal x, qreal y, qreal *tx, qreal *ty) const
Convertit les coordonnées données x et y dans le système de coordonnées défini par cette matrice. Les valeurs obtenues sont stockées respectivement dans *tx et *ty.
La transformation des coordonnées s'effectue à 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 également 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`, transposée 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é, transposé dans le système de coordonnées défini par cette matrice. Notez que 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é, transposé 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é, transposé dans le système de coordonnées défini par cette matrice. Notez que 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`, transposé 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é, transposé dans le système de coordonnées défini par cette matrice. Notez que 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é, transposé 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é, transposé dans le système de coordonnées défini par cette matrice.
L'appel de cette méthode peut s'avérer 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
Convertit les coordonnées données x et y dans le système de coordonnées défini par cette matrice. Les valeurs obtenues sont stockées respectivement dans *tx et *ty. Notez que 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é, transposé 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 englobant. Pour récupérer la région exacte à laquelle correspond l’objet ` rectangle ` donné, utilisez plutôt la fonction ` mapToPolygon()`.
Voir également 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é, transposé dans le système de coordonnées défini par cette matrice. Notez que 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 de type « QPolygon » de l'rectangle donné, projetée 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 lors de la transformation (en raison de l'arrondi des nombres entiers) ; par conséquent, ` 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 pratique 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 également squareToQuad() et quadToSquare().
[static] bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
Crée une matrice de transformation, trans, qui transforme un polygone à quatre côtés, quad, en un carré unitaire. Renvoie true si la transformation est construite, ou false si une telle transformation n'existe pas.
Voir également squareToQuad() et quadToQuad().
void QTransform::reset()
Réinitialise la matrice en matrice identité, c'est-à-dire que tous les éléments sont mis à zéro, à l'exception de m11 et m22 (qui définissent l'échelle) ainsi que 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 antihoraire d'un angle donné a autour de l'axis e spécifiée, située à une distance distanceToPlane de l'écran, et renvoie une référence à la matrice.
Notez que si vous appliquez une QTransform à un point défini dans les coordonnées du widget, le sens de la rotation sera dans le sens des aiguilles d’une montre, car l’axe y est orienté vers le bas.
L'angle est spécifié en degrés.
Si l'distanceToPlane est nulle, elle sera ignorée. Cela 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 également 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 selon l'angle donné a autour du point spécifié axis situé à une distance de 1024,0 de l'écran, et renvoie une référence à la matrice.
Notez que si vous appliquez une rotation ( QTransform ) à un point défini dans les coordonnées du widget, la rotation s’effectuera dans le sens des aiguilles d’une montre, car l’axe y est orienté 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 antihoraire selon l'angle a autour du point axis situé à une distance distanceToPlane de l'écran, et renvoie une référence à la matrice.
Notez que si vous appliquez un QTransform à un point défini dans les coordonnées du widget, le sens de rotation sera dans le sens des aiguilles d’une montre, car l’axe y est orienté vers le bas.
L'angle est spécifié en radians.
Si l'distanceToPlane est nulle, elle sera ignorée. Cela 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 également setMatrix().
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis)
Fait pivoter le système de coordonnées dans le sens antihoraire selon l'angle a autour du point axis situé à une distance de 1024,0 de l'écran, puis renvoie une référence à la matrice.
Notez que si vous appliquez une QTransform à un point défini dans les coordonnées du widget, le sens de la rotation sera dans le sens des aiguilles d’une montre, car l’axe y est orienté 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)
Mise à l'échelle du système de coordonnées selon sx à l'horizontale et sy à la verticale, puis renvoie une référence à la matrice.
Voir également 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 pratiques 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)
Décale le système de coordonnées horizontalement de sh et verticalement de sv, puis renvoie une référence à la matrice.
Voir également setMatrix().
[static] bool QTransform::squareToQuad(const QPolygonF &quad, QTransform &trans)
Crée une matrice de transformation, trans, qui transforme un carré unitaire en un polygone à quatre côtés, quad. Renvoie true si la transformation est construite, ou false si une telle transformation n'existe pas.
Voir également quadToSquare() et quadToQuad().
QTransform &QTransform::translate(qreal dx, qreal dy)
Déplace le système de coordonnées de dx le long de l'axe x et de dy le long de l'axe y, puis renvoie une référence à la matrice.
Voir également setMatrix().
QTransform QTransform::transposed() const
Renvoie la transposée de cette matrice.
QTransform::TransformationType QTransform::type() const
Renvoie le type de transformation de cette matrice.
Le type de transformation correspond à la valeur d'énumération la plus élevée englobant toutes les transformations de la matrice. Par exemple, si la matrice effectue à la fois une mise à l'échelle et un cisaillement, le type sera TxShear, car TxShear possède une valeur d'énumération supérieure à TxScale.
Connaître le type de transformation d’une matrice est utile pour l’optimisation : il est souvent possible de traiter certains types spécifiques de manière plus optimale que le cas générique.
QTransform::operator QVariant() const
Renvoie la transformation sous la forme d'un objet ` QVariant`.
bool QTransform::operator!=(const QTransform &matrix) const
Renvoie ` true ` si cette matrice n'est pas égale à ` matrix` ; sinon, renvoie ` false`.
QTransform QTransform::operator*(const QTransform &matrix) const
Renvoie le résultat de la multiplication de cette matrice par l'matrix on fournie.
Notez que la multiplication matricielle 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 l'matrix on fournie.
Il s'agit d'une fonction surchargée.
QTransform &QTransform::operator*=(qreal scalar)
Renvoie le résultat de la multiplication élément par élément de cette matrice par l'scalar on fournie.
Il s’agit d’une fonction surchargée.
QTransform &QTransform::operator+=(qreal scalar)
Renvoie la matrice obtenue en ajoutant l'scalar e donnée à chaque élément de cette matrice.
QTransform &QTransform::operator-=(qreal scalar)
Renvoie la matrice obtenue en soustrayant l'scalar e 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 l'scalar on fournie.
[noexcept default] QTransform &QTransform::operator=(QTransform &&other)
Cette commande attribue la table « other » à cette instance « QTransform ».
[noexcept default] QTransform &QTransform::operator=(const QTransform &matrix)
Attribue à cette matrice les valeurs de l'matrix on indiquée.
bool QTransform::operator==(const QTransform &matrix) const
Renvoie ` true ` si cette matrice est égale à celle fournie ` matrix`, sinon renvoie ` false`.
Éléments non membres associés
[noexcept] bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
Renvoie « true » si « t1 » et « t2 » sont égaux, en tenant compte d'un léger degré d'imprécision pour les comparaisons en virgule flottante ; renvoie « false » dans le cas contraire.
[noexcept] size_t qHash(const QTransform &key, size_t seed = 0)
Renvoie la valeur de hachage de key, en utilisant seed comme valeur de départ pour le calcul.
QLine operator*(const QLine &line, const QTransform &matrix)
Cela revient à : matrix.map(line).
Voir également QTransform::map().
QLineF operator*(const QLineF &line, const QTransform &matrix)
Cela revient à : matrix.map(line).
Voir également QTransform::map().
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
Cela revient à : matrix.map(path).
Voir également QTransform::map().
QPoint operator*(const QPoint &point, const QTransform &matrix)
Cela revient à : matrix.map(point).
Voir également QTransform::map().
QPointF operator*(const QPointF &point, const QTransform &matrix)
Equivalent à matrix.map(point).
Voir également QTransform::map().
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
Cela revient à matrix.map(polygon).
Voir également QTransform::map().
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
Cela revient à : matrix.map(polygon).
Voir également QTransform::map().
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
Cela revient à : matrix.map(region).
Voir également QTransform::map().
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
Écrit l'matrix on fournie dans le stream on indiquée et renvoie une référence au flux.
Voir également Sérialisation des types de données Qt.
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
Lit l'matrix donné à partir de l'stream spécifié et renvoie une référence au flux.
Voir également 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.


