matrix4x4 QML Value Type
Ein matrix4x4-Typ ist eine 4-zeilige und 4-spaltige Matrix. Mehr...
Detaillierte Beschreibung
Ein Typ matrix4x4
hat sechzehn Werte, die jeweils über die Eigenschaften m11
bis m44
in QML (in Zeilen-/Spaltenreihenfolge) zugänglich sind. Werte dieses Typs können mit der Funktion Qt.matrix4x4() zusammengesetzt werden. Jedes Attribut in einer matrix4x4 wird als Realwert gespeichert (einfach-genau auf ARM, doppelt-genau auf x86).
Eine Eigenschaft vom Typ matrix4x4
ist standardmäßig die Identitätsmatrix, deren Diagonaleinträge m11
, m22
, m33
und m44
alle 1
sind, mit allen anderen Komponenten 0
.
Der Typ matrix4x4 hat die folgenden idempotenten Funktionen, die in QML aufgerufen werden können:
Funktion Signatur | Beschreibung | Beispiel |
---|---|---|
translate(vector3d vector) | Multipliziert this matrix4x4 mit einer anderen, die die Koordinaten um die Komponenten von vector | |
rotate(real angle, vector3d axis) | Multipliziert this matrix4x4 mit einer anderen, die die Koordinaten um angle Grad dreht. axis | |
rotate(quaternion quaternion) | Multipliziert this matrix4x4 mit einer anderen, die die Koordinaten entsprechend einer angegebenen quaternion dreht. Es wird angenommen, dass die quaternion normalisiert wurde. | |
scale(real factor) | Multipliziert this matrix4x4 mit einer anderen, die die Koordinaten um den angegebenen Faktor skaliert 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) | Multipliziert die this matrix4x4 mit einer anderen, die die Koordinaten um die Komponenten x , y , und 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) | Multipliziert this matrix4x4 mit einer anderen, die die Koordinaten um die Komponenten von vector | |
lookAt(vector3d eye, vector3d center, vector3d up) | Multipliziert die this matrix4x4 mit einer Blickmatrix, die von einem eye Punkt abgeleitet ist. Der center vector3d gibt den Mittelpunkt der Ansicht an, auf die der eye schaut. Der up Vektor3d gibt an, welche Richtung in Bezug auf eye als aufwärts betrachtet werden sollte. | |
matrix4x4 times(matrix4x4 other) | Gibt das matrix4x4-Ergebnis der Multiplikation von this matrix4x4 mit der other matrix4x4 zurück. | |
vector4d times(vector4d vector) | Liefert das vector4d-Ergebnis der Transformation von vector gemäß this matrix4x4 mit der angewandten Vorvektor-Matrix | |
vector3d times(vector3d vector) | Liefert das vector3d-Ergebnis der Transformation von vector gemäß this matrix4x4 mit der angewendeten Matrix vor dem Vektor | |
matrix4x4 times(real factor) | Liefert das matrix4x4-Ergebnis der Multiplikation von this matrix4x4 mit dem Skalar 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 andere) | Liefert das matrix4x4-Ergebnis der Addition von this matrix4x4 mit der other matrix4x4 | |
matrix4x4 minus(matrix4x4 andere) | Liefert das matrix4x4-Ergebnis der Subtraktion von other matrix4x4 von this matrix4x4 | |
vector4d row(int which) | Gibt die durch which angegebene vector4d-Zeile von this zurück. Hinweis: which ist ein 0-basierter Zugriff auf die Matrix. | |
vector4d column(int which) | Gibt die durch which angegebene vector4d-Spalte von this zurück. Hinweis: which ist ein 0-basierter Zugriff auf die Matrix. | |
real determinant() | Gibt die Determinante von this matrix4x4 zurück. | 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 invertiert() | Gibt die Inverse von this matrix4x4 zurück, wenn sie existiert, sonst die Identitätsmatrix. | 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 transponiert() | Gibt die Transponierung von this matrix4x4 zurück. | 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) | Bildet das angegebene Rechteck in das durch diese Matrix definierte Koordinatensystem ab. Wurde eine Drehung oder Scherung angegeben, gibt diese Funktion das begrenzende Rechteck zurück. Diese Funktion wurde in Qt 6.5 eingeführt. | |
Punkt map(Punkt) | Bildet den angegebenen Punkt in das durch diese Matrix definierte Koordinatensystem ab. Diese Funktion wurde in Qt 6.5 eingeführt. | 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 andere, real epsilon) | Gibt true zurück, wenn this matrix4x4 ungefähr gleich der other matrix4x4 ist. Die Annäherung ist wahr, wenn jedes Attribut von this innerhalb von epsilon des entsprechenden Attributs von other liegt. epsilon ist ein optionales Argument, der Standardwert epsilon ist 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 |
Dieser Wertetyp wird durch den QtQuick Import bereitgestellt.
Siehe auch QML-Wertetypen.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.