matrix4x4 QML Value Type
Un type matrix4x4 est une matrice à 4 lignes et 4 colonnes. Plus d'informations...
Description détaillée
Un type matrix4x4 possède seize valeurs, chacune étant accessible via les propriétés m11 à m44 en QML (dans l'ordre ligne/colonne). Les valeurs de ce type peuvent être composées à l'aide de la fonction Qt.matrix4x4(). Chaque attribut d'une matrix4x4 est stocké sous la forme d'un réel (simple précision sur ARM, double précision sur x86).
Une propriété de type matrix4x4 est par défaut la matrice d'identité, dont les entrées diagonales m11, m22, m33 et m44 sont toutes 1, avec toutes les autres composantes 0.
Le type matrix4x4 possède les fonctions idempotentes suivantes, qui peuvent être invoquées en QML :
| Signature de la fonction | Description de la fonction | Exemple |
|---|---|---|
| translate(vector3d vector) | Multiplie this matrix4x4 par une autre qui traduit les coordonnées par les composantes du vecteur. vector | |
| rotate(real angle, vector3d axis) | Multiplie this matrix4x4 par une autre qui fait pivoter les coordonnées de angle degrés autour de axis | |
| rotate(quaternion quaternion) | Multiplie this matrix4x4 par une autre qui fait pivoter les coordonnées selon un quaternion spécifié. L'adresse quaternion est supposée avoir été normalisée. | |
| scale(real factor) | Multiplie this matrix4x4 par une autre qui met à l'échelle les coordonnées selon le facteur donné. factor | var m = Qt.matrix4x4(); m.scale(2); console.log(m.toString()); // QMatrix4x4(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1) |
| scale(real x, real y, real z) | Multiplie this matrix4x4 par une autre qui met à l'échelle les coordonnées par les composants x, y, et z | var m = Qt.matrix4x4(); m.scale(1,2,3); console.log(m.toString()); // QMatrix4x4(1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1) |
| scale(vector3d vector) | Multiplie this matrix4x4 par une autre qui met à l'échelle les coordonnées par les composantes de vector | |
| lookAt(vector3d eye, vector3d center, vector3d up) | Multiplie this matrix4x4 par une matrice de visualisation dérivée d'un point eye. Le center vector3d indique le centre de la vue que regarde le eye. Le vecteur3d up indique la direction qui doit être considérée comme ascendante par rapport à eye. | |
| matrix4x4 times(matrix4x4 other) | Renvoie le résultat de la multiplication de this matrix4x4 avec other matrix4x4. | |
| vector4d times(vector4d vector) | Renvoie le résultat vectoriel4d de la transformation de vector selon this matrix4x4 avec le pré-vecteur appliqué à la matrice | |
| vector3d times(vector3d vector) | Renvoie le résultat vectoriel3d de la transformation de vector en this matrix4x4 avec le prévecteur appliqué à la matrice. | |
| matrix4x4 times(real factor) | Renvoie le résultat de la multiplication de this matrix4x4 avec le scalaire factor | var a = Qt.matrix4x4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); var b = 4.48; var c = a.times(b); console.log(c.toString()); // QMatrix4x4(4.48, 8.96, 13.44, 17.92, 22.4, 26.88, 31.36, 35.84, // 40.32, 44.8, 49.28, 53.76, 58.24, 62.72, 67.2, 71.68) |
| matrix4x4 plus(matrix4x4 other) | Renvoie le résultat de l'addition de this matrix4x4 avec other matrix4x4. | |
| matrix4x4 minus(matrix4x4 other) | Renvoie le résultat de la soustraction de other matrix4x4 à this matrix4x4. | |
| vector4d row(int which) | Renvoie le vecteur4d row de this spécifié par which. Remarque : which est un accès basé sur 0 à la matrice. | |
| vector4d column(int which) | Renvoie le vecteur4d colonne de this spécifié par which. Remarque : which est un accès basé sur 0 à la matrice. | |
| real determinant() | Renvoie le déterminant de this matrix4x4 | var a = Qt.matrix4x4(1,0,0,0,0,2,0,0,0,0,3,0,100,200,300,1); var b = a.determinant(); console.log(b); // 6 |
| matrix4x4 inverted() | Renvoie l'inverse de this matrix4x4 si elle existe, sinon la matrice identité. | var a = Qt.matrix4x4(1,0,0,0,0,2,0,0,0,0,3,0,100,200,300,1); var b = a.inverted(); console.log(b.toString()); // QMatrix4x4(1, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0.333333, 0, -100, // -100, -100, 1) |
| matrix4x4 transposed() | Renvoie la transposition de this matrix4x4 | var a = Qt.matrix4x4(1,0,0,0,0,2,0,0,0,0,3,0,100,200,300,1); var b = a.transposed(); console.log(b.toString()); // QMatrix4x4(1, 0, 0, 100, 0, 2, 0, 200, 0, 0, 3, 300, 0, 0, 0, 1) |
| rect mapRect(rect) | Transpose le rectangle fourni dans le système de coordonnées défini par cette matrice. Si une rotation ou un cisaillement a été spécifié, cette fonction renvoie le rectangle de délimitation. Cette fonction a été introduite dans Qt 6.5. | |
| point map(point) | Met en correspondance le point fourni avec le système de coordonnées défini par cette matrice. Cette fonction a été introduite dans Qt 6.5. | var a = Qt.matrix4x4(2,0,0,0,0,2,0,0,0,0,1,0,0,0,0,1); var b = a.map(10, 20); console.log(b.toString()); // Qt.point(20, 40) |
| bool fuzzyEquals(matrix4x4 other, real epsilon) | Retourne vrai si this matrix4x4 est approximativement égal à other matrix4x4. L'approximation sera vraie si chaque attribut de this se trouve à l'intérieur de epsilon de l'attribut respectif de other. Notez que epsilon est un argument optionnel, la valeur par défaut de epsilon est 0.00001. | var a = Qt.matrix4x4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); var b = Qt.matrix4x4(1.0001,2.0001,3.0002,4.0003,5.0001,6.0002, 7.0002,8.0004, 9.0001,10.0003, 11.0003,12.0004,13.0001, 14.0002,15.0003,16.0004); var c = a.fuzzyEquals(b); // default epsilon var d = a.fuzzyEquals(b, 0.005); // supplied epsilon console.log(c + " " + d); // false true |
Ce type de valeur est fourni par l'importation QtQuick.
Voir également les types de valeurs QML.
© 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.