QVector4D Class
Die Klasse „QVector4D“ repräsentiert einen Vektor oder einen Scheitelpunkt im 4D-Raum. Mehr...
| Header: | #include <QVector4D> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QVector4D ist Teil von „Rendering in 3D“.
Öffentliche Funktionen
| QVector4D() | |
| QVector4D(QPoint point) | |
| QVector4D(QPointF point) | |
| QVector4D(QVector2D vector) | |
| QVector4D(QVector3D vector) | |
| QVector4D(QVector3D vector, float wpos) | |
| QVector4D(QVector2D vector, float zpos, float wpos) | |
| QVector4D(float xpos, float ypos, float zpos, float wpos) | |
| bool | isNull() const |
| float | length() const |
| float | lengthSquared() const |
| void | normalize() |
| QVector4D | normalized() const |
| void | setW(float w) |
| void | setX(float x) |
| void | setY(float y) |
| void | setZ(float z) |
| QPoint | toPoint() const |
| QPointF | toPointF() const |
| QVector2D | toVector2D() const |
| QVector2D | toVector2DAffine() const |
| QVector3D | toVector3D() const |
| QVector3D | toVector3DAffine() const |
| float | w() const |
| float | x() const |
| float | y() const |
| float | z() const |
| operator QVariant() const | |
| QVector4D & | operator*=(QVector4D vector) |
| QVector4D & | operator*=(float factor) |
| QVector4D & | operator+=(QVector4D vector) |
| QVector4D & | operator-=(QVector4D vector) |
| QVector4D & | operator/=(QVector4D vector) |
| QVector4D & | operator/=(float divisor) |
| float & | operator[](int i) |
| float | operator[](int i) const |
Statische öffentliche Mitglieder
| float | dotProduct(QVector4D v1, QVector4D v2) |
Verwandte Nicht-Mitglieder
| bool | qFuzzyCompare(QVector4D v1, QVector4D v2) |
(since 6.12) size_t | qHash(QVector4D key, size_t seed = 0) |
| bool | operator!=(QVector4D v1, QVector4D v2) |
| QVector4D | operator*(QVector4D v1, QVector4D v2) |
| QVector4D | operator*(QVector4D vector, float factor) |
| QVector4D | operator*(float factor, QVector4D vector) |
| QVector4D | operator+(QVector4D v1, QVector4D v2) |
| QVector4D | operator-(QVector4D v1, QVector4D v2) |
| QVector4D | operator-(QVector4D vector) |
| QVector4D | operator/(QVector4D vector, QVector4D divisor) |
| QVector4D | operator/(QVector4D vector, float divisor) |
| QDataStream & | operator<<(QDataStream &stream, QVector4D vector) |
| bool | operator==(QVector4D v1, QVector4D v2) |
| QDataStream & | operator>>(QDataStream &stream, QVector4D &vector) |
Ausführliche Beschreibung
Vektoren sind einer der wichtigsten Bausteine affiner 4D-Darstellungen des 3D-Raums. Sie bestehen aus vier endlichen Gleitkomma-Koordinaten, die traditionell als x, y, z und w bezeichnet werden.
Die Klasse `QVector4D` kann auch zur Darstellung von Eckpunkten im 4D-Raum verwendet werden. Daher ist es nicht erforderlich, eine separate Eckpunktklasse bereitzustellen.
Siehe auch QQuaternion, QVector2D und QVector3D.
Dokumentation zu den Member-Funktionen
[constexpr noexcept] QVector4D::QVector4D()
Erzeugt einen Nullvektor, d. h. mit den Koordinaten (0, 0, 0, 0).
[explicit constexpr noexcept] QVector4D::QVector4D(QPoint point)
Erzeugt einen Vektor mit x- und y-Koordinaten aus einem 2D- point sowie z- und w-Koordinaten von 0.
[explicit constexpr noexcept] QVector4D::QVector4D(QPointF point)
Erstellt einen Vektor mit den x- und y-Koordinaten aus einem 2D- point sowie den z- und w-Koordinaten 0.
[explicit constexpr noexcept] QVector4D::QVector4D(QVector2D vector)
Erstellt einen 4D-Vektor aus dem angegebenen 2D- vector. Die z- und w-Koordinaten werden auf Null gesetzt.
Siehe auch ` toVector2D()`.
[explicit constexpr noexcept] QVector4D::QVector4D(QVector3D vector)
Erstellt einen 4D-Vektor aus dem angegebenen 3D- vector. Die w-Koordinate wird auf Null gesetzt.
Siehe auch ` toVector3D()`.
[constexpr noexcept] QVector4D::QVector4D(QVector3D vector, float wpos)
Erzeugt einen 4D-Vektor aus dem angegebenen 3D- vector. Die w-Koordinate wird auf wpos gesetzt, wobei dieser Wert endlich sein muss.
Siehe auch ` toVector3D()`.
[constexpr noexcept] QVector4D::QVector4D(QVector2D vector, float zpos, float wpos)
Erzeugt einen 4D-Vektor aus dem angegebenen 2D- vector. Die z- und w-Koordinaten werden auf zpos bzw. wpos gesetzt, wobei beide Werte endlich sein müssen.
Siehe auch toVector2D().
[constexpr noexcept] QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos)
Erzeugt einen Vektor mit den Koordinaten (xpos, ypos, zpos, wpos). Alle Parameter müssen endlich sein.
[static constexpr noexcept] float QVector4D::dotProduct(QVector4D v1, QVector4D v2)
Gibt das Skalarprodukt von v1 und v2 zurück.
[constexpr noexcept] bool QVector4D::isNull() const
Gibt „ true “ zurück, wenn die Koordinaten x, y, z und w auf 0,0 gesetzt sind; andernfalls wird „ false “ zurückgegeben.
[noexcept] float QVector4D::length() const
Gibt die Länge des Vektors vom Ursprung aus zurück.
Siehe auch lengthSquared() und normalized().
[constexpr noexcept] float QVector4D::lengthSquared() const
Gibt das Quadrat der Länge des Vektors vom Ursprung aus zurück. Dies entspricht dem Skalarprodukt des Vektors mit sich selbst.
Siehe auch length() und dotProduct().
[noexcept] void QVector4D::normalize()
Normalisiert den aktuellen Vektor an Ort und Stelle. Es geschieht nichts, wenn dieser Vektor ein Nullvektor ist oder die Länge des Vektors sehr nahe bei 1 liegt.
Siehe auch length() und normalized().
[noexcept] QVector4D QVector4D::normalized() const
Gibt die normierte Einheitsvektorform dieses Vektors zurück.
Ist dieser Vektor null, wird ein Nullvektor zurückgegeben. Liegt die Länge des Vektors sehr nahe bei 1, wird der Vektor unverändert zurückgegeben. Andernfalls wird die normierte Form des Vektors der Länge 1 zurückgegeben.
Siehe auch length() und normalize().
[constexpr noexcept] void QVector4D::setW(float w)
Setzt die w-Koordinate dieses Punktes auf die angegebene endliche w -Koordinate.
Siehe auch w(), setX(), setY() und setZ().
[constexpr noexcept] void QVector4D::setX(float x)
Setzt die x-Koordinate dieses Punktes auf die angegebene endliche x -Koordinate.
Siehe auch x(), setY(), setZ() und setW().
[constexpr noexcept] void QVector4D::setY(float y)
Setzt die y-Koordinate dieses Punktes auf die angegebene endliche y -Koordinate.
Siehe auch y(), setX(), setZ() und setW().
[constexpr noexcept] void QVector4D::setZ(float z)
Setzt die z-Koordinate dieses Punktes auf die angegebene endliche z -Koordinate.
Siehe auch z(), setX(), setY() und setW().
[constexpr noexcept] QPoint QVector4D::toPoint() const
Gibt die Form „ QPoint “ dieses 4D-Vektors zurück. Die z- und w-Koordinaten werden verworfen. Die x- und y-Koordinaten werden auf die nächsten ganzen Zahlen gerundet.
Siehe auch „ toPointF()“ und „ toVector2D()“.
[constexpr noexcept] QPointF QVector4D::toPointF() const
Gibt die Form „ QPointF “ dieses 4D-Vektors zurück. Die z- und w-Koordinaten werden weggelassen.
Siehe auch „ toPoint()“ und „ toVector2D()“.
[constexpr noexcept] QVector2D QVector4D::toVector2D() const
Gibt die 2D-Vektorform dieses 4D-Vektors zurück, wobei die z- und w-Koordinaten weggelassen werden.
Siehe auch toVector2DAffine(), toVector3D() und toPoint().
[constexpr noexcept] QVector2D QVector4D::toVector2DAffine() const
Gibt die 2D-Vektorform dieses 4D-Vektors zurück, wobei die x- und y-Koordinaten durch die w-Koordinate geteilt und die z-Koordinate verworfen werden. Gibt einen Nullvektor zurück, wenn w gleich Null ist.
Siehe auch toVector2D(), toVector3DAffine() und toPoint().
[constexpr noexcept] QVector3D QVector4D::toVector3D() const
Gibt die 3D-Vektorform dieses 4D-Vektors zurück, wobei die w-Koordinate weggelassen wird.
Siehe auch toVector3DAffine(), toVector2D() und toPoint().
[constexpr noexcept] QVector3D QVector4D::toVector3DAffine() const
Gibt die 3D-Vektorform dieses 4D-Vektors zurück, wobei die x-, y- und z-Koordinaten durch die w-Koordinate geteilt werden. Gibt einen Nullvektor zurück, wenn w gleich Null ist.
Siehe auch toVector3D(), toVector2DAffine() und toPoint().
[constexpr noexcept] float QVector4D::w() const
Gibt die w-Koordinate dieses Punktes zurück.
Siehe auch setW(), x(), y() und z().
[constexpr noexcept] float QVector4D::x() const
Gibt die x-Koordinate dieses Punktes zurück.
Siehe auch setX(), y(), z() und w().
[constexpr noexcept] float QVector4D::y() const
Gibt die y-Koordinate dieses Punktes zurück.
Siehe auch setY(), x(), z() und w().
[constexpr noexcept] float QVector4D::z() const
Gibt die z-Koordinate dieses Punktes zurück.
Siehe auch setZ(), x(), y() und w().
QVector4D::operator QVariant() const
Gibt den 4D-Vektor als „ QVariant “ zurück.
[constexpr noexcept] QVector4D &QVector4D::operator*=(QVector4D vector)
Multipliziert jede Komponente dieses Vektors mit der entsprechenden Komponente von vector und gibt eine Referenz auf diesen Vektor zurück.
Siehe auch operator/=() und operator*().
[constexpr noexcept] QVector4D &QVector4D::operator*=(float factor)
Multipliziert die Koordinaten dieses Vektors mit dem angegebenen endlichen factor und gibt eine Referenz auf diesen Vektor zurück.
Siehe auch ` operator/=()` und ` operator*()`.
[constexpr noexcept] QVector4D &QVector4D::operator+=(QVector4D vector)
Fügt den angegebenen vector zu diesem Vektor hinzu und gibt eine Referenz auf diesen Vektor zurück.
Siehe auch ` operator-=()`.
[constexpr noexcept] QVector4D &QVector4D::operator-=(QVector4D vector)
Subtrahiert den angegebenen Vektor ` vector ` von diesem Vektor und gibt eine Referenz auf diesen Vektor zurück.
Siehe auch ` operator+=()`.
[constexpr] QVector4D &QVector4D::operator/=(QVector4D vector)
Teilt jede Komponente dieses Vektors durch die entsprechende Komponente von „ vector “ und gibt eine Referenz auf diesen Vektor zurück.
Der Vektor ` vector ` darf keine Komponente enthalten, die entweder Null oder NaN ist.
Siehe auch „ operator*=()“ und „ operator/()“.
[constexpr] QVector4D &QVector4D::operator/=(float divisor)
Teilt die Koordinaten dieses Vektors durch den angegebenen divisor und gibt eine Referenz auf diesen Vektor zurück. Der divisor darf weder Null noch NaN sein.
Siehe auch ` operator*=()`.
[constexpr] float &QVector4D::operator[](int i)
Gibt die Komponente des Vektors an der Indexposition i als bearbeitbare Referenz zurück.
i muss eine gültige Indexposition im Vektor sein (d. h., 0 <= i < 4).
[constexpr] float QVector4D::operator[](int i) const
Gibt die Komponente des Vektors an der Indexposition i zurück.
i i muss eine gültige Indexposition im Vektor sein (d. h., 0 <= < 4).
Verwandte Nicht-Mitglieder
[noexcept] bool qFuzzyCompare(QVector4D v1, QVector4D v2)
Gibt „ true “ zurück, wenn „ v1 “ und „ v2 “ gleich sind, wobei bei Gleitkomma-Vergleichen ein geringer Ungenauigkeitsfaktor berücksichtigt wird; andernfalls „false“.
[constexpr noexcept, since 6.12] size_t qHash(QVector4D key, size_t seed = 0)
Gibt den Hash-Wert für „ key “ zurück, wobei „ seed “ als Startwert für die Berechnung verwendet wird.
Diese Funktion wurde in Qt 6.12 eingeführt.
[constexpr noexcept] bool operator!=(QVector4D v1, QVector4D v2)
Gibt „ true “ zurück, wenn „ v1 “ nicht gleich „ v2 “ ist; andernfalls wird „ false “ zurückgegeben. Dieser Operator verwendet einen exakten Gleitkomma-Vergleich.
[constexpr noexcept] QVector4D operator*(QVector4D v1, QVector4D v2)
Gibt das Objekt „ QVector4D “ zurück, das durch Multiplikation jeder Komponente von „ v1 “ mit der entsprechenden Komponente von „ v2 “ gebildet wird.
Hinweis: Dies ist in keiner Weise ein Vektorprodukt von ` v1 ` und ` v2 `. (Die Summe seiner Komponenten entspricht dem Skalarprodukt von ` v1 ` und ` v2`.)
Siehe auch QVector4D::operator*=().
[constexpr noexcept] QVector4D operator*(QVector4D vector, float factor)
Gibt eine Kopie des angegebenen ` vector` zurück, multipliziert mit dem angegebenen ` factor`.
Siehe auch ` QVector4D::operator*=()`.
[constexpr noexcept] QVector4D operator*(float factor, QVector4D vector)
Gibt eine Kopie des angegebenen ` vector` zurück, multipliziert mit dem angegebenen ` factor`.
Siehe auch ` QVector4D::operator*=()`.
[constexpr noexcept] QVector4D operator+(QVector4D v1, QVector4D v2)
Gibt ein ` QVector4D `-Objekt zurück, das die Summe der angegebenen Vektoren ` v1 ` und ` v2` darstellt; jede Komponente wird separat addiert.
Siehe auch ` QVector4D::operator+=()`.
[constexpr noexcept] QVector4D operator-(QVector4D v1, QVector4D v2)
Gibt ein „ QVector4D “-Objekt zurück, das durch Subtraktion von v2 von v1 gebildet wird; dabei wird jede Komponente separat subtrahiert.
Siehe auch QVector4D::operator-=().
[constexpr noexcept] QVector4D operator-(QVector4D vector)
Gibt ein „ QVector4D “-Objekt zurück, das durch Umkehrung des Vorzeichens aller drei Komponenten des angegebenen „ vector “ gebildet wird.
Entspricht ` QVector4D(0,0,0,0) - vector`.
Dies ist eine überladene Funktion.
[constexpr] QVector4D operator/(QVector4D vector, QVector4D divisor)
Gibt das Objekt „ QVector4D “ zurück, das dadurch gebildet wird, dass jede Komponente des angegebenen „ vector “ durch die entsprechende Komponente des angegebenen „ divisor “ dividiert wird.
Das ` divisor ` darf keine Komponente enthalten, die entweder Null oder NaN ist.
Siehe auch QVector4D::operator/=().
[constexpr] QVector4D operator/(QVector4D vector, float divisor)
Gibt das Objekt „ QVector4D “ zurück, das durch Division jeder Komponente des angegebenen „ vector “ durch den angegebenen „ divisor “ gebildet wird.
Das ` divisor ` darf weder Null noch `NaN` sein.
Siehe auch QVector4D::operator/=().
QDataStream &operator<<(QDataStream &stream, QVector4D vector)
Schreibt den angegebenen „ vector “ in den angegebenen „ stream “ und gibt eine Referenz auf den Stream zurück.
Siehe auch „Serialisierung vonQt-Datentypen“.
[constexpr noexcept] bool operator==(QVector4D v1, QVector4D v2)
Gibt „ true “ zurück, wenn „ v1 “ gleich „ v2 “ ist; andernfalls wird „ false “ zurückgegeben. Dieser Operator verwendet einen exakten Gleitkomma-Vergleich.
QDataStream &operator>>(QDataStream &stream, QVector4D &vector)
Liest einen 4D-Vektor aus dem angegebenen „ stream “ in den angegebenen „ vector “ 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.