QMatrix4x4 Class
Die Klasse „QMatrix4x4“ repräsentiert eine 4x4-Transformationsmatrix im 3D-Raum. Mehr...
| Überschrift: | #include <QMatrix4x4> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Veraltete Elemente
- QMatrix4x4 ist Teil von „Rendering in 3D“.
Öffentliche Funktionen
| QMatrix4x4() | |
| QMatrix4x4(const QGenericMatrix<N, M, float> &matrix) | |
| QMatrix4x4(const QTransform &transform) | |
| QMatrix4x4(const float *values) | |
| QMatrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44) | |
| QVector4D | column(int index) const |
| const float * | constData() const |
| void | copyDataTo(float *values) const |
| float * | data() |
| const float * | data() const |
| double | determinant() const |
| void | fill(float value) |
| void | frustum(float left, float right, float bottom, float top, float nearPlane, float farPlane) |
| QMatrix4x4 | inverted(bool *invertible = nullptr) const |
| bool | isAffine() const |
| bool | isIdentity() const |
| void | lookAt(const QVector3D &eye, const QVector3D ¢er, const QVector3D &up) |
| QPoint | map(const QPoint &point) const |
| QPointF | map(const QPointF &point) const |
| QVector3D | map(const QVector3D &point) const |
| QVector4D | map(const QVector4D &point) const |
| QRect | mapRect(const QRect &rect) const |
| QRectF | mapRect(const QRectF &rect) const |
| QVector3D | mapVector(const QVector3D &vector) const |
| QMatrix3x3 | normalMatrix() const |
| void | optimize() |
| void | ortho(float left, float right, float bottom, float top, float nearPlane, float farPlane) |
| void | ortho(const QRect &rect) |
| void | ortho(const QRectF &rect) |
| void | perspective(float verticalAngle, float aspectRatio, float nearPlane, float farPlane) |
| void | rotate(const QQuaternion &quaternion) |
| void | rotate(float angle, const QVector3D &vector) |
| void | rotate(float angle, float x, float y, float z = 0.0f) |
| QVector4D | row(int index) const |
| void | scale(const QVector3D &vector) |
| void | scale(float factor) |
| void | scale(float x, float y) |
| void | scale(float x, float y, float z) |
| void | setColumn(int index, const QVector4D &value) |
| void | setRow(int index, const QVector4D &value) |
| void | setToIdentity() |
| QGenericMatrix<N, M, float> | toGenericMatrix() const |
| QTransform | toTransform() const |
| QTransform | toTransform(float distanceToPlane) const |
| void | translate(const QVector3D &vector) |
| void | translate(float x, float y) |
| void | translate(float x, float y, float z) |
| QMatrix4x4 | transposed() const |
| void | viewport(float left, float bottom, float width, float height, float nearPlane = 0.0f, float farPlane = 1.0f) |
| void | viewport(const QRectF &rect) |
| operator QVariant() const | |
| bool | operator!=(const QMatrix4x4 &other) const |
| float & | operator()(int row, int column) |
| const float & | operator()(int row, int column) const |
| QMatrix4x4 & | operator*=(const QMatrix4x4 &other) |
| QMatrix4x4 & | operator*=(float factor) |
| QMatrix4x4 & | operator+=(const QMatrix4x4 &other) |
| QMatrix4x4 & | operator-=(const QMatrix4x4 &other) |
| QMatrix4x4 & | operator/=(float divisor) |
| bool | operator==(const QMatrix4x4 &other) const |
Verwandte Nicht-Mitglieder
| bool | qFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2) |
| QMatrix4x4 | operator*(const QMatrix4x4 &m1, const QMatrix4x4 &m2) |
| QVector4D | operator*(const QMatrix4x4 &matrix, const QVector4D &vector) |
| QMatrix4x4 | operator*(const QMatrix4x4 &matrix, float factor) |
| QPoint | operator*(const QPoint &point, const QMatrix4x4 &matrix) |
| QPointF | operator*(const QPointF &point, const QMatrix4x4 &matrix) |
| QVector4D | operator*(const QVector4D &vector, const QMatrix4x4 &matrix) |
| QMatrix4x4 | operator*(float factor, const QMatrix4x4 &matrix) |
| QMatrix4x4 | operator+(const QMatrix4x4 &m1, const QMatrix4x4 &m2) |
| QMatrix4x4 | operator-(const QMatrix4x4 &m1, const QMatrix4x4 &m2) |
| QMatrix4x4 | operator-(const QMatrix4x4 &matrix) |
| QMatrix4x4 | operator/(const QMatrix4x4 &matrix, float divisor) |
| QDataStream & | operator<<(QDataStream &stream, const QMatrix4x4 &matrix) |
| QDataStream & | operator>>(QDataStream &stream, QMatrix4x4 &matrix) |
Ausführliche Beschreibung
Die Klasse „QMatrix4x4“ wird im Allgemeinen als zeilenorientierte Matrix behandelt, da die Konstruktoren und die Funktionen „ operator()“ Daten im zeilenorientierten Format entgegennehmen, wie es aus der Verwendung im C-Stil bekannt ist.
Intern werden die Daten im spaltenorientierten Format gespeichert, um eine optimale Übergabe an OpenGL-Funktionen zu gewährleisten, die spaltenorientierte Daten erwarten.
Beachten Sie bei der Verwendung dieser Funktionen, dass sie Daten im spaltenorientierten Format zurückgeben:
Siehe auch „ QVector3D “ und „ QGenericMatrix “.
Dokumentation zu den Member-Funktionen
QMatrix4x4::QMatrix4x4()
Erstellt eine Einheitsmatrix.
[explicit] template <int N, int M> QMatrix4x4::QMatrix4x4(const QGenericMatrix<N, M, float> &matrix)
Erstellt eine 4×4-Matrix aus den 4 Spalten ganz links und den 4 Zeilen ganz oben von matrix. Wenn matrix weniger als 4 Spalten oder Zeilen enthält, werden die verbleibenden Elemente mit Elementen aus der Einheitsmatrix aufgefüllt.
Siehe auch toGenericMatrix().
QMatrix4x4::QMatrix4x4(const QTransform &transform)
Erstellt eine 4x4-Matrix aus der herkömmlichen Qt-2D-Transformationsmatrix transform.
Wenn ` transform ` einen speziellen Typ hat (Identität, Translation, Skalierung usw.), sollte der Programmierer diesem Konstruktor einen Aufruf von ` optimize()` folgen lassen, wenn er möchte, dass `QMatrix4x4` weitere Aufrufe von ` translate()`, ` scale()` usw. optimiert.
Siehe auch toTransform() und optimize().
[explicit] QMatrix4x4::QMatrix4x4(const float *values)
Erstellt eine Matrix aus den angegebenen 16 Gleitkomma- values. Es wird davon ausgegangen, dass der Inhalt des Arrays values in zeilenorientierter Reihenfolge vorliegt.
Wenn die Matrix einen speziellen Typ hat (Identität, Verschiebung, Skalierung usw.), sollte der Programmierer diesem Konstruktor einen Aufruf von ` optimize()` folgen lassen, wenn er möchte, dass `QMatrix4x4` weitere Aufrufe von ` translate()`, ` scale()` usw. optimiert.
Siehe auch ` copyDataTo()` und ` optimize()`.
QMatrix4x4::QMatrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)
Erstellt eine Matrix aus den 16 Elementen m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43 und m44. Die Elemente werden in zeilenorientierter Reihenfolge angegeben.
Wenn die Matrix einen speziellen Typ hat (Identitätsmatrix, Verschiebung, Skalierung usw.), sollte der Programmierer diesem Konstruktor einen Aufruf von ` optimize()` folgen lassen, wenn er möchte, dass `QMatrix4x4` weitere Aufrufe von ` translate()`, ` scale()` usw. optimiert.
Siehe auch ` optimize()`.
QVector4D QMatrix4x4::column(int index) const
Gibt die Elemente der Spalte „ index “ als 4D-Vektor zurück.
Siehe auch „ setColumn()“ und „ row()“.
const float *QMatrix4x4::constData() const
Gibt einen konstanten Zeiger auf die Rohdaten dieser Matrix zurück. Diese Rohdaten werden im spaltenorientierten Format gespeichert.
Siehe auch ` data()`.
void QMatrix4x4::copyDataTo(float *values) const
Ruft die 16 Elemente dieser Matrix ab und kopiert sie in zeilenorientierter Reihenfolge in die Datei „ values “.
float *QMatrix4x4::data()
Gibt einen Zeiger auf die Rohdaten dieser Matrix zurück.
Siehe auch constData() und optimize().
const float *QMatrix4x4::data() const
Gibt einen konstanten Zeiger auf die Rohdaten dieser Matrix zurück. Diese Rohdaten werden im spaltenorientierten Format gespeichert.
Siehe auch ` constData()`.
double QMatrix4x4::determinant() const
Gibt die Determinante dieser Matrix zurück.
void QMatrix4x4::fill(float value)
Füllt alle Elemente dieser Matrix mit „ value “ auf.
void QMatrix4x4::frustum(float left, float right, float bottom, float top, float nearPlane, float farPlane)
Multipliziert diese Matrix mit einer anderen, die eine perspektivische Kegelstumpfprojektion für ein Fenster mit der unteren linken Ecke (left, bottom), der oberen rechten Ecke (right, top) und den angegebenen Schnittflächen nearPlane und farPlane anwendet.
Siehe auch ortho() und perspective().
QMatrix4x4 QMatrix4x4::inverted(bool *invertible = nullptr) const
Gibt die Inverse dieser Matrix zurück. Gibt die Identitätsmatrix zurück, wenn diese Matrix nicht invertiert werden kann, d. h., wenn determinant() gleich Null ist. Ist invertible nicht null, wird an dieser Stelle „true“ geschrieben, wenn die Matrix invertiert werden kann; andernfalls „false“.
Wird die Matrix als Einheitsmatrix oder orthonormale Matrix erkannt, invertiert diese Funktion die Matrix mithilfe optimierter Routinen im Handumdrehen.
Siehe auch determinant() und normalMatrix().
bool QMatrix4x4::isAffine() const
Gibt „ true “ zurück, wenn es sich bei dieser Matrix um eine affine Matrix handelt; andernfalls „false“.
Eine affine Matrix ist eine 4x4-Matrix, deren dritte Zeile gleich (0, 0, 0, 1) ist, d. h. sie enthält keine projektiven Koeffizienten.
Siehe auch isIdentity().
bool QMatrix4x4::isIdentity() const
Gibt „ true “ zurück, wenn es sich bei dieser Matrix um die Einheitsmatrix handelt; andernfalls „false“.
Siehe auch setToIdentity().
void QMatrix4x4::lookAt(const QVector3D &eye, const QVector3D ¢er, const QVector3D &up)
Multipliziert diese Matrix mit einer aus einem Blickpunkt abgeleiteten Betrachtungsmatrix. Der Wert „ center “ gibt den Mittelpunkt der Ansicht an, auf die der „ eye “ blickt. Der Wert „ up “ gibt an, welche Richtung in Bezug auf den „ eye “ als „oben“ zu betrachten ist.
Hinweis: Der Vektor „ up “ darf nicht parallel zur Sichtlinie von „ eye “ zu „ center “ sein.
QPoint QMatrix4x4::map(const QPoint &point) const
Wird point durch Multiplikation dieser Matrix mit point abgebildet. Die Matrix wird vor dem Punkt angewendet.
Siehe auch mapRect().
QPointF QMatrix4x4::map(const QPointF &point) const
Ordnet point zu, indem diese Matrix mit point nachmultipliziert wird. Die Matrix wird vor dem Punkt angewendet.
Siehe auch mapRect().
QVector3D QMatrix4x4::map(const QVector3D &point) const
Wendet „ point “ an, indem diese Matrix mit point multipliziert wird, das durch die Annahme von 1,0 für die w-Koordinate zu einem 4D-Vektor erweitert wurde. Die Matrix wird vor der Punktberechnung angewendet.
Hinweis: Diese Funktion ist nicht identisch mit mapVector(). Verwenden Sie für Punkte immer map(). mapVector() eignet sich nur für Vektoren (Richtungen).
Siehe auch „ mapRect()“ und „ mapVector()“.
QVector4D QMatrix4x4::map(const QVector4D &point) const
Wird point durch Multiplikation dieser Matrix mit point abgebildet. Die Matrix wird vor dem Punkt angewendet.
Siehe auch mapRect().
QRect QMatrix4x4::mapRect(const QRect &rect) const
Ordnet rect zu, indem diese Matrix mit den Eckpunkten von rect multipliziert wird und aus den Ergebnissen anschließend ein neues Rechteck gebildet wird. Das zurückgegebene Rechteck ist ein gewöhnliches 2D-Rechteck, dessen Seiten parallel zur horizontalen und vertikalen Achse verlaufen.
Siehe auch map().
QRectF QMatrix4x4::mapRect(const QRectF &rect) const
Ordnet rect zu, indem diese Matrix mit den Eckpunkten von rect multipliziert wird und anschließend aus den Ergebnissen ein neues Rechteck gebildet wird. Das zurückgegebene Rechteck ist ein gewöhnliches 2D-Rechteck, dessen Seiten parallel zur horizontalen und vertikalen Achse verlaufen.
Siehe auch map().
QVector3D QMatrix4x4::mapVector(const QVector3D &vector) const
Ordnet vector zu, indem der obere 3×3-Teil dieser Matrix mit vector multipliziert wird. Die Translations- und Projektionskomponenten dieser Matrix werden ignoriert. Die Matrix wird als Prä-Vektor angewendet.
Siehe auch map().
QMatrix3x3 QMatrix4x4::normalMatrix() const
Gibt die Normalmatrix zurück, die dieser 4x4-Transformation entspricht. Die Normalmatrix ist die Transponierte der Inversen des oberen linken 3x3-Teils dieser 4x4-Matrix. Ist die 3x3-Untermatrix nicht invertierbar, gibt diese Funktion die Identitätsmatrix zurück.
Siehe auch ` inverted()`.
void QMatrix4x4::optimize()
Optimieren Sie die Nutzung dieser Matrix anhand ihrer aktuellen Elemente.
Einige Operationen wie „ translate()“, „ scale()“ und „ rotate()“ lassen sich effizienter ausführen, wenn bereits bekannt ist, dass es sich bei der zu modifizierenden Matrix um die Identitätsmatrix, eine zuvor mit „ translate()“ oder „ scale()“ bearbeitete Matrix usw. handelt.
Normalerweise verfolgt die Klasse „ QMatrix4x4 “ diesen speziellen Typ intern, während die Operationen ausgeführt werden. Wird die Matrix jedoch direkt mit „ operator()(int, int)“ oder „ data()“ geändert, verliert „ QMatrix4x4 “ den Überblick über den speziellen Typ und greift danach auf die sichersten, aber am wenigsten effizienten Operationen zurück.
Durch den Aufruf von `optimize()` nach einer direkten Änderung der Matrix kann der Programmierer ` QMatrix4x4 ` dazu zwingen, den speziellen Typ wiederherzustellen, sofern die Elemente einem der bekannten optimierten Typen zu entsprechen scheinen.
Siehe auch operator()(int, int), data() und translate().
void QMatrix4x4::ortho(float left, float right, float bottom, float top, float nearPlane, float farPlane)
Multipliziert diese Matrix mit einer anderen, die eine orthogonale Projektion für ein Fenster mit der unteren linken Ecke (left, bottom), der oberen rechten Ecke (right, top) und den angegebenen Begrenzungsebenen nearPlane und farPlane durchführt.
Siehe auch frustum() und perspective().
void QMatrix4x4::ortho(const QRect &rect)
Multipliziert diese Matrix mit einer anderen, die eine orthogonale Projektion für ein Fenster durchführt, dessen Grenzen durch ` rect` festgelegt sind. Die nahe und die ferne Clipping-Ebene sind jeweils -1 und 1.
Dies ist eine überladene Funktion.
Siehe auch ` frustum()` und ` perspective()`.
void QMatrix4x4::ortho(const QRectF &rect)
Multipliziert diese Matrix mit einer anderen, die eine orthogonale Projektion für ein Fenster durchführt, dessen Grenzen durch rect festgelegt sind. Die nahe und die ferne Clipping-Ebene betragen -1 bzw. 1.
Dies ist eine überladene Funktion.
Siehe auch frustum() und perspective().
void QMatrix4x4::perspective(float verticalAngle, float aspectRatio, float nearPlane, float farPlane)
Multipliziert diese Matrix mit einer anderen, die eine perspektivische Projektion anwendet. Das vertikale Sichtfeld beträgt verticalAngle Grad innerhalb eines Fensters mit einem vorgegebenen aspectRatio, das das horizontale Sichtfeld bestimmt. Die Projektion verfügt über die angegebenen Clipping-Ebenen nearPlane und farPlane, die den Abstand vom Betrachter zu den entsprechenden Ebenen angeben.
Siehe auch ortho() und frustum().
void QMatrix4x4::rotate(const QQuaternion &quaternion)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten gemäß einer angegebenen quaternion dreht. Es wird davon ausgegangen, dass die quaternion normalisiert wurde.
Siehe auch ` scale()`, ` translate()` und ` QQuaternion`.
void QMatrix4x4::rotate(float angle, const QVector3D &vector)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten um angle Grad um vector dreht.
Siehe auch scale() und translate().
void QMatrix4x4::rotate(float angle, float x, float y, float z = 0.0f)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten um angle Grad um den Vektor (x, y, z) dreht.
Dies ist eine überladene Funktion.
Siehe auch scale() und translate().
QVector4D QMatrix4x4::row(int index) const
Gibt die Elemente der Zeile „ index “ als 4D-Vektor zurück.
Siehe auch „ setRow()“ und „ column()“.
void QMatrix4x4::scale(const QVector3D &vector)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten mit den Komponenten von vector skaliert.
Siehe auch translate() und rotate().
void QMatrix4x4::scale(float factor)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten mit dem angegebenen Faktor factor skaliert.
Dies ist eine überladene Funktion.
Siehe auch ` translate()` und ` rotate()`.
void QMatrix4x4::scale(float x, float y)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten mit den Komponenten x und y skaliert.
Dies ist eine überladene Funktion.
Siehe auch translate() und rotate().
void QMatrix4x4::scale(float x, float y, float z)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten mit den Komponenten x, y und z skaliert.
Dies ist eine überladene Funktion.
Siehe auch translate() und rotate().
void QMatrix4x4::setColumn(int index, const QVector4D &value)
Setzt die Elemente der Spalte „ index “ auf die Komponenten von „ value “ zurück.
Siehe auch column() und setRow().
void QMatrix4x4::setRow(int index, const QVector4D &value)
Setzt die Elemente der Zeile „ index “ auf die Komponenten von „ value “ .
Siehe auch row() und setColumn().
void QMatrix4x4::setToIdentity()
Setzt diese Matrix auf die Einheitsmatrix.
Siehe auch isIdentity().
template <int N, int M> QGenericMatrix<N, M, float> QMatrix4x4::toGenericMatrix() const
Erstellt eine generische Matrix der Größe N × M aus den N Spalten ganz links und den M Zeilen ganz oben dieser 4×4-Matrix. Ist N oder M größer als 4, werden die verbleibenden Elemente mit Elementen aus der Einheitsmatrix aufgefüllt.
QTransform QMatrix4x4::toTransform() const
Gibt die herkömmliche Qt-2D-Transformationsmatrix zurück, die dieser Matrix entspricht.
Die zurückgegebene „ QTransform “ entsteht, indem einfach die dritte Zeile und die dritte Spalte der „ QMatrix4x4 “ weggelassen werden. Dies eignet sich für die Implementierung orthogonaler Projektionen, bei denen die z-Koordinate weggelassen statt projiziert werden soll.
QTransform QMatrix4x4::toTransform(float distanceToPlane) const
Gibt die herkömmliche Qt-2D-Transformationsmatrix zurück, die dieser Matrix entspricht.
Ist ` distanceToPlane ` ungleich Null, gibt dies einen Projektionsfaktor an, der zur Anpassung der z-Koordinate verwendet wird. Der Wert 1024 entspricht dem Projektionsfaktor, der von ` QTransform::rotate()` für die x- und y-Achsen verwendet wird.
Ist ` distanceToPlane ` gleich Null, wird die zurückgegebene ` QTransform ` einfach durch Weglassen der dritten Zeile und der dritten Spalte der ` QMatrix4x4` gebildet. Dies eignet sich für die Implementierung orthogonaler Projektionen, bei denen die z-Koordinate weggelassen statt projiziert werden soll.
void QMatrix4x4::translate(const QVector3D &vector)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten um die Komponenten von vector verschiebt.
Siehe auch scale() und rotate().
void QMatrix4x4::translate(float x, float y)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten um die Komponenten x und y verschiebt.
Dies ist eine überladene Funktion.
Siehe auch scale() und rotate().
void QMatrix4x4::translate(float x, float y, float z)
Multipliziert diese Matrix mit einer anderen, die die Koordinaten um die Komponenten x, y und z verschiebt.
Dies ist eine überladene Funktion.
Siehe auch scale() und rotate().
QMatrix4x4 QMatrix4x4::transposed() const
Gibt diese Matrix zurück, die um ihre Diagonale transponiert wurde.
void QMatrix4x4::viewport(float left, float bottom, float width, float height, float nearPlane = 0.0f, float farPlane = 1.0f)
Multipliziert diese Matrix mit einer weiteren Matrix, die die von OpenGL verwendete Skalierungs- und Offset-Transformation durchführt, um von normalisierten Gerätekordinaten (NDC) in Viewport- (Fenster-)Koordinaten umzuwandeln. Das heißt, sie bildet Punkte des Würfels, die in jeder Dimension im Bereich [-1, 1] liegen, auf den Viewport ab, dessen vordere linke untere Ecke bei (left, bottom, nearPlane) liegt und dessen Größe (width, height, farPlane – nearPlane) beträgt.
Dies entspricht der Transformation, die von der festen OpenGL-Viewport-Transformation verwendet wird, die durch die Funktionen glViewport() und glDepthRange() gesteuert wird.
void QMatrix4x4::viewport(const QRectF &rect)
Richtet die Viewport-Transformation für einen Viewport ein, der durch die Koordinaten rect begrenzt ist und bei dem „near“ und „far“ auf 0 bzw. 1 gesetzt sind.
Dies ist eine überladene Funktion.
QMatrix4x4::operator QVariant() const
Gibt die Matrix als „ QVariant “ zurück.
bool QMatrix4x4::operator!=(const QMatrix4x4 &other) const
Gibt „ true “ zurück, wenn diese Matrix nicht mit „ other “ identisch ist; andernfalls „false“. Dieser Operator verwendet einen exakten Fließkomma-Vergleich.
float &QMatrix4x4::operator()(int row, int column)
Gibt eine Referenz auf das Element an der Position (row, column) in dieser Matrix zurück, sodass das Element zugewiesen werden kann.
Siehe auch optimize(), setColumn() und setRow().
const float &QMatrix4x4::operator()(int row, int column) const
Gibt eine konstante Referenz auf das Element an der Position (row, column) in dieser Matrix zurück.
Siehe auch column() und row().
QMatrix4x4 &QMatrix4x4::operator*=(const QMatrix4x4 &other)
Multipliziert den Inhalt von „ other “ mit dieser Matrix.
QMatrix4x4 &QMatrix4x4::operator*=(float factor)
Multipliziert alle Elemente dieser Matrix mit factor.
Dies ist eine überladene Funktion.
QMatrix4x4 &QMatrix4x4::operator+=(const QMatrix4x4 &other)
Fügt den Inhalt von ` other ` zu dieser Matrix hinzu.
QMatrix4x4 &QMatrix4x4::operator-=(const QMatrix4x4 &other)
Zieht den Inhalt von ` other ` von dieser Matrix ab.
QMatrix4x4 &QMatrix4x4::operator/=(float divisor)
Teilt alle Elemente dieser Matrix durch divisor.
bool QMatrix4x4::operator==(const QMatrix4x4 &other) const
Gibt „ true “ zurück, wenn diese Matrix mit „ other “ identisch ist; andernfalls „false“. Dieser Operator verwendet einen exakten Gleitkomma-Vergleich.
Verwandte Nicht-Mitglieder
[noexcept] bool qFuzzyCompare(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
Gibt „ true “ zurück, wenn „ m1 “ und „ m2 “ gleich sind, wobei bei Gleitkomma-Vergleichen ein geringer Ungenauigkeitsfaktor berücksichtigt wird; andernfalls „false“.
QMatrix4x4 operator*(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
Gibt das Produkt aus m1 und m2 zurück.
QVector4D operator*(const QMatrix4x4 &matrix, const QVector4D &vector)
Gibt das Ergebnis der Transformation von vector gemäß matrix zurück, wobei die Matrix auf den Prä-Vektor angewendet wird.
QMatrix4x4 operator*(const QMatrix4x4 &matrix, float factor)
Gibt das Ergebnis der Multiplikation aller Elemente von ` matrix ` mit ` factor` zurück.
QPoint operator*(const QPoint &point, const QMatrix4x4 &matrix)
Gibt das Ergebnis der Transformation von point gemäß matrix zurück, wobei die Matrix nach dem Punkt angewendet wird.
QPointF operator*(const QPointF &point, const QMatrix4x4 &matrix)
Gibt das Ergebnis der Transformation von point gemäß matrix zurück, wobei die Matrix nach dem Punkt angewendet wird.
QVector4D operator*(const QVector4D &vector, const QMatrix4x4 &matrix)
Gibt das Ergebnis der Transformation von vector gemäß matrix zurück, wobei die Matrix nach dem Vektor angewendet wird.
QMatrix4x4 operator*(float factor, const QMatrix4x4 &matrix)
Gibt das Ergebnis der Multiplikation aller Elemente von ` matrix ` mit ` factor` zurück.
QMatrix4x4 operator+(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
Gibt die Summe aus m1 und m2 zurück.
QMatrix4x4 operator-(const QMatrix4x4 &m1, const QMatrix4x4 &m2)
Gibt die Differenz zwischen m1 und m2 zurück.
QMatrix4x4 operator-(const QMatrix4x4 &matrix)
Gibt die Negation von ` matrix` zurück.
Dies ist eine überladene Funktion.
QMatrix4x4 operator/(const QMatrix4x4 &matrix, float divisor)
Gibt das Ergebnis der Division aller Elemente von ` matrix ` durch ` divisor` zurück.
QDataStream &operator<<(QDataStream &stream, const QMatrix4x4 &matrix)
Schreibt den angegebenen „ matrix “ in den angegebenen „ stream “ und gibt eine Referenz auf den Stream zurück.
Siehe auch „Serialisierung vonQt-Datentypen“.
QDataStream &operator>>(QDataStream &stream, QMatrix4x4 &matrix)
Liest eine 4x4-Matrix aus dem angegebenen ` stream ` in den angegebenen ` matrix ` ein und gibt eine Referenz auf den Stream zurück.
Siehe auch „Serialisierung vonQt-Datentypen“.
© 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.