QVector3D Class
La classe QVector3D représente un vecteur ou un sommet dans l'espace 3D. En savoir plus...
| En-tête : | #include <QVector3D> |
| 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
- QVector3D fait partie du module « Rendu 3D ».
Fonctions publiques
| QVector3D() | |
| QVector3D(QPoint point) | |
| QVector3D(QPointF point) | |
| QVector3D(QVector2D vector) | |
| QVector3D(QVector4D vector) | |
| QVector3D(QVector2D vector, float zpos) | |
| QVector3D(float xpos, float ypos, float zpos) | |
| float | distanceToLine(QVector3D point, QVector3D direction) const |
| float | distanceToPlane(QVector3D plane, QVector3D normal) const |
| float | distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const |
| float | distanceToPoint(QVector3D point) const |
| bool | isNull() const |
| float | length() const |
| float | lengthSquared() const |
| void | normalize() |
| QVector3D | normalized() const |
| QVector3D | project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const |
| void | setX(float x) |
| void | setY(float y) |
| void | setZ(float z) |
| QPoint | toPoint() const |
| QPointF | toPointF() const |
| QVector2D | toVector2D() const |
| QVector4D | toVector4D() const |
| QVector3D | unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const |
| float | x() const |
| float | y() const |
| float | z() const |
| operator QVariant() const | |
| QVector3D & | operator*=(float factor) |
| QVector3D & | operator*=(QVector3D vector) |
| QVector3D & | operator+=(QVector3D vector) |
| QVector3D & | operator-=(QVector3D vector) |
| QVector3D & | operator/=(QVector3D vector) |
| QVector3D & | operator/=(float divisor) |
| float & | operator[](int i) |
| float | operator[](int i) const |
Membres publics statiques
| QVector3D | crossProduct(QVector3D v1, QVector3D v2) |
| float | dotProduct(QVector3D v1, QVector3D v2) |
| QVector3D | normal(QVector3D v1, QVector3D v2) |
| QVector3D | normal(QVector3D v1, QVector3D v2, QVector3D v3) |
Éléments non membres associés
| bool | qFuzzyCompare(QVector3D v1, QVector3D v2) |
(since 6.12) size_t | qHash(QVector3D key, size_t seed = 0) |
| bool | operator!=(QVector3D v1, QVector3D v2) |
| QVector3D | operator*(QVector3D v1, QVector3D v2) |
| QVector3D | operator*(QVector3D vector, float factor) |
| QVector3D | operator*(float factor, QVector3D vector) |
| QVector3D | operator+(QVector3D v1, QVector3D v2) |
| QVector3D | operator-(QVector3D v1, QVector3D v2) |
| QVector3D | operator-(QVector3D vector) |
| QVector3D | operator/(QVector3D vector, QVector3D divisor) |
| QVector3D | operator/(QVector3D vector, float divisor) |
| QDataStream & | operator<<(QDataStream &stream, QVector3D vector) |
| bool | operator==(QVector3D v1, QVector3D v2) |
| QDataStream & | operator>>(QDataStream &stream, QVector3D &vector) |
Description détaillée
Les vecteurs constituent l'un des principaux éléments constitutifs de la représentation et du tracé en 3D. Ils se composent de trois coordonnées à virgule flottante finies, traditionnellement appelées x, y et z.
La classe QVector3D peut également être utilisée pour représenter des sommets dans l'espace 3D. Il n'est donc pas nécessaire de fournir une classe de sommets distincte.
Voir également QVector2D, QVector4D et QQuaternion.
Documentation des fonctions membres
[constexpr noexcept] QVector3D::QVector3D()
Crée un vecteur nul, c'est-à-dire dont les coordonnées sont (0, 0, 0).
[explicit constexpr noexcept] QVector3D::QVector3D(QPoint point)
Crée un vecteur dont les coordonnées x et y proviennent d'une point en 2D, et dont la coordonnée z est égale à 0.
[explicit constexpr noexcept] QVector3D::QVector3D(QPointF point)
Crée un vecteur dont les coordonnées x et y proviennent d'une point en 2D, et dont la coordonnée z est égale à 0.
[explicit constexpr noexcept] QVector3D::QVector3D(QVector2D vector)
Crée un vecteur 3D à partir de l'vector 2D spécifiée. La coordonnée z est définie sur zéro.
Voir aussi toVector2D().
[explicit constexpr noexcept] QVector3D::QVector3D(QVector4D vector)
Crée un vecteur 3D à partir de l'vector 4D spécifiée. La coordonnée w est ignorée.
Voir aussi toVector4D().
[constexpr noexcept] QVector3D::QVector3D(QVector2D vector, float zpos)
Construit un vecteur 3D à partir de l'vector 2D spécifiée. La coordonnée z est définie sur zpos, qui doit être une valeur finie.
Voir également toVector2D().
[constexpr noexcept] QVector3D::QVector3D(float xpos, float ypos, float zpos)
Crée un vecteur dont les coordonnées sont (xpos, ypos, zpos). Tous les paramètres doivent être finis.
[static constexpr noexcept] QVector3D QVector3D::crossProduct(QVector3D v1, QVector3D v2)
Renvoie le produit vectoriel des vecteurs v1 et v2, qui est normal au plan défini par v1 et v2. Il sera égal à zéro si les deux vecteurs sont parallèles.
Voir également normal().
[noexcept] float QVector3D::distanceToLine(QVector3D point, QVector3D direction) const
Renvoie la distance entre ce sommet et une droite définie par point et le vecteur unitaire direction.
Si direction est un vecteur nul, alors il ne définit pas de droite. Dans ce cas, la distance entre point et ce sommet est renvoyée.
Voir également distanceToPlane().
[constexpr noexcept] float QVector3D::distanceToPlane(QVector3D plane, QVector3D normal) const
Renvoie la distance entre ce sommet et un plan défini par le sommet plane et un vecteur unitaire normal. Le paramètre normal est supposé avoir été normalisé en vecteur unitaire.
La valeur renvoyée sera négative si le sommet se trouve en dessous du plan, ou nulle s’il se trouve sur le plan.
Voir également normal() et distanceToLine().
[noexcept] float QVector3D::distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const
Renvoie la distance entre ce sommet et un plan défini par les sommets plane1, plane2 et plane3.
La valeur renvoyée sera négative si le sommet se trouve en dessous du plan, ou égale à zéro s'il se trouve sur le plan.
Les deux vecteurs qui définissent le plan sont plane2 - plane1 et plane3 - plane1.
Voir également normal() et distanceToLine().
[noexcept] float QVector3D::distanceToPoint(QVector3D point) const
Renvoie la distance entre ce sommet et un point défini par le sommet point.
Voir également distanceToPlane() et distanceToLine().
[static constexpr noexcept] float QVector3D::dotProduct(QVector3D v1, QVector3D v2)
Renvoie le produit scalaire de v1 et v2.
[constexpr noexcept] bool QVector3D::isNull() const
Renvoie « true » si les coordonnées x, y et z sont définies sur 0,0 ; sinon, renvoie « false ».
[noexcept] float QVector3D::length() const
Renvoie la distance du vecteur par rapport à l'origine.
Voir également lengthSquared() et normalized().
[constexpr noexcept] float QVector3D::lengthSquared() const
Renvoie la longueur au carré du vecteur par rapport à l'origine. Cela équivaut au produit scalaire du vecteur avec lui-même.
Voir également length() et dotProduct().
[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2)
Renvoie le vecteur normal unitaire d'un plan défini par les vecteurs v1 et v2, qui ne doivent pas être parallèles l'un à l'autre.
Utilisez crossProduct() pour calculer le produit vectoriel de v1 et v2 si vous n'avez pas besoin que le résultat soit normalisé en vecteur unitaire.
Voir également crossProduct() et distanceToPlane().
[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2, QVector3D v3)
Renvoie le vecteur normal unitaire d'un plan défini par les vecteurs v2 - v1 et v3 - v1, qui ne doivent pas être parallèles entre eux.
Utilisez crossProduct() pour calculer le produit vectoriel de v2 - v1 et v3 - v1 si vous n'avez pas besoin que le résultat soit normalisé en vecteur unitaire.
Voir également crossProduct() et distanceToPlane().
[noexcept] void QVector3D::normalize()
Normalise le vecteur courant sur place. Aucune opération n'est effectuée si ce vecteur est un vecteur nul ou si sa longueur est très proche de 1.
Voir également length() et normalized().
[noexcept] QVector3D QVector3D::normalized() const
Renvoie la forme normalisée (vecteur unitaire) de ce vecteur.
Si ce vecteur est nul, un vecteur nul est renvoyé. Si la longueur du vecteur est très proche de 1, le vecteur est renvoyé tel quel. Sinon, la forme normalisée du vecteur de longueur 1 est renvoyée.
Voir également length() et normalize().
QVector3D QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
Renvoie les coordonnées dans la fenêtre de ce vecteur, initialement exprimées en coordonnées d'objet/de modèle, à l'aide de la matrice de vue du modèle modelView, de la matrice de projection projection et des dimensions de la fenêtre d'affichage viewport.
Lors de la transformation de l'espace de découpe vers l'espace normalisé, une division par la composante w est effectuée sur les composantes du vecteur. Pour éviter une division par 0 si w est égal à 0, celui-ci est défini à 1.
Remarque : les coordonnées y renvoyées sont dans l'orientation OpenGL. OpenGL considère que le bas correspond à 0, alors que pour Qt, c’est le haut qui correspond à 0.
Voir également unproject().
[constexpr noexcept] void QVector3D::setX(float x)
Définit la coordonnée x de ce point sur la coordonnée finie fournie x.
Voir également x(), setY() et setZ().
[constexpr noexcept] void QVector3D::setY(float y)
Définit la coordonnée y de ce point sur la coordonnée finie y fournie.
Voir également y(), setX() et setZ().
[constexpr noexcept] void QVector3D::setZ(float z)
Définit la coordonnée z de ce point sur la coordonnée finie z fournie.
Voir également z(), setX() et setY().
[constexpr noexcept] QPoint QVector3D::toPoint() const
Renvoie la forme « QPoint » de ce vecteur 3D. La coordonnée z est supprimée. Les coordonnées x et y sont arrondies aux entiers les plus proches.
Voir également toPointF() et toVector2D().
[constexpr noexcept] QPointF QVector3D::toPointF() const
Renvoie la forme « QPointF » de ce vecteur 3D. La coordonnée z est supprimée.
Voir également toPoint() et toVector2D().
[constexpr noexcept] QVector2D QVector3D::toVector2D() const
Renvoie la forme vectorielle 2D de ce vecteur 3D, en supprimant la coordonnée z.
Voir également toVector4D() et toPoint().
[constexpr noexcept] QVector4D QVector3D::toVector4D() const
Renvoie la forme 4D de ce vecteur 3D, avec la coordonnée w définie à zéro.
Voir aussi toVector2D() et toPoint().
QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
Renvoie les coordonnées de l'objet/du modèle de ce vecteur, initialement exprimées en coordonnées de fenêtre, à l'aide de la matrice de vue du modèle modelView, de la matrice de projection projection et des dimensions de la fenêtre d'affichage viewport.
Lors de la transformation de l'espace de découpe vers l'espace normalisé, une division par la composante w des composantes du vecteur a lieu. Pour éviter une division par 0 si w est égal à 0, celui-ci est défini à 1.
Remarque : les coordonnéesy dans viewport doivent respecter l'orientation OpenGL. OpenGL considère que le bas correspond à 0, alors que pour Qt, c'est le haut qui correspond à 0.
Voir également project().
[constexpr noexcept] float QVector3D::x() const
Renvoie la coordonnée x de ce point.
Voir également setX(), y() et z().
[constexpr noexcept] float QVector3D::y() const
Renvoie la coordonnée y de ce point.
Voir également setY(), x() et z().
[constexpr noexcept] float QVector3D::z() const
Renvoie la coordonnée z de ce point.
Voir également setZ(), x() et y().
QVector3D::operator QVariant() const
Renvoie le vecteur 3D sous la forme d'un objet de type « QVariant ».
[constexpr noexcept] QVector3D &QVector3D::operator*=(float factor)
Multiplie les coordonnées de ce vecteur par l'factor e fini donné et renvoie une référence à ce vecteur.
Voir également ` operator/=()` et ` operator*()`.
[constexpr noexcept] QVector3D &QVector3D::operator*=(QVector3D vector)
Multiplie chaque composante de ce vecteur par la composante correspondante dans vector et renvoie une référence à ce vecteur.
Remarque : cette fonction n’est pas identique à la fonction ` crossProduct()` de ce vecteur ni à ` vector`. (La somme de ses composantes correspond au produit scalaire de ce vecteur et de ` vector`.)
Il s'agit d'une fonction surchargée.
Voir également crossProduct(), operator/=() et operator*().
[constexpr noexcept] QVector3D &QVector3D::operator+=(QVector3D vector)
Ajoute l'vector on indiquée à ce vecteur et renvoie une référence à ce vecteur.
Voir aussi operator-=().
[constexpr noexcept] QVector3D &QVector3D::operator-=(QVector3D vector)
Soustrait l'vector on indiquée de ce vecteur et renvoie une référence à ce vecteur.
Voir aussi ` operator+=()`.
[constexpr] QVector3D &QVector3D::operator/=(QVector3D vector)
Divise chaque composante de ce vecteur par la composante correspondante dans « vector » et renvoie une référence à ce vecteur.
vector ne doit comporter aucune composante égale à zéro ou à NaN.
Voir également operator*=() et operator/().
[constexpr] QVector3D &QVector3D::operator/=(float divisor)
Divise les coordonnées de ce vecteur par l'divisor e fournie et renvoie une référence à ce vecteur. L'divisor e ne doit être ni égal à zéro ni à NaN.
Voir également operator*=() et operator/().
[constexpr] float &QVector3D::operator[](int i)
Renvoie la composante du vecteur à l'indice i sous la forme d'une référence modifiable.
i i doit être un indice valide dans le vecteur (c'est-à-dire 0 <= < 3).
[constexpr] float QVector3D::operator[](int i) const
Renvoie la composante du vecteur à l'indice i.
i i doit être une position d'index valide dans le vecteur (c'est-à-dire 0 <= < 3).
Éléments non membres associés
[noexcept] bool qFuzzyCompare(QVector3D v1, QVector3D v2)
Renvoie « true » si « v1 » et « v2 » 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.
[constexpr noexcept, since 6.12] size_t qHash(QVector3D key, size_t seed = 0)
Renvoie la valeur de hachage de key, en utilisant seed comme valeur de départ pour le calcul.
Cette fonction a été introduite dans Qt 6.12.
[constexpr noexcept] bool operator!=(QVector3D v1, QVector3D v2)
Renvoie « true » si « v1 » n'est pas égal à « v2 » ; sinon, renvoie « false ». Cet opérateur utilise une comparaison exacte en virgule flottante.
[constexpr noexcept] QVector3D operator*(QVector3D v1, QVector3D v2)
Renvoie l'objet « QVector3D » obtenu en multipliant chaque composante de v1 par la composante correspondante de v2.
Remarque : cette fonction n’est pas identique à la fonction crossProduct() de v1 et v2. (La somme de ses composantes correspond au produit scalaire de v1 et v2.)
Voir également QVector3D::crossProduct().
[constexpr noexcept] QVector3D operator*(QVector3D vector, float factor)
Renvoie une copie de l'vector donné, multipliée par l'factor fini donné.
Voir aussi QVector3D::operator*=().
[constexpr noexcept] QVector3D operator*(float factor, QVector3D vector)
Renvoie une copie de l'vector donné, multipliée par l'factor fini donné.
Voir aussi QVector3D::operator*=().
[constexpr noexcept] QVector3D operator+(QVector3D v1, QVector3D v2)
Renvoie un objet de type « QVector3D » correspondant à la somme des vecteurs fournis, v1 et v2; chaque composante est additionnée séparément.
Voir aussi QVector3D::operator+=().
[constexpr noexcept] QVector3D operator-(QVector3D v1, QVector3D v2)
Renvoie un objet ` QVector3D ` obtenu en soustrayant ` v2 ` de ` v1` ; chaque composante est soustraite séparément.
Voir également QVector3D::operator-=().
[constexpr noexcept] QVector3D operator-(QVector3D vector)
Renvoie un objet ` QVector3D ` obtenu en inversant le signe de chaque composante de l'vector` fournie.
Équivalent à ` QVector3D(0,0,0) - vector`.
Il s'agit d'une fonction surchargée.
[constexpr] QVector3D operator/(QVector3D vector, QVector3D divisor)
Renvoie l'objet ` QVector3D ` obtenu en divisant chaque composante de l'objet ` vector ` donné par la composante correspondante de l'objet ` divisor` donné.
L'divisor ne doit comporter aucune composante égale à zéro ou à NaN.
Voir également QVector3D::operator/=().
[constexpr] QVector3D operator/(QVector3D vector, float divisor)
Renvoie l'objet ` QVector3D ` obtenu en divisant chaque composante de l'vector ` donné par l'divisor` donné.
L'divisor ne doit être ni égal à zéro ni NaN.
Voir aussi QVector3D::operator/=().
QDataStream &operator<<(QDataStream &stream, QVector3D vector)
Écrit l'vector on fournie dans le flux stream et renvoie une référence à ce flux.
Voir également Sérialisation des types de données Qt.
[constexpr noexcept] bool operator==(QVector3D v1, QVector3D v2)
Renvoie « true » si « v1 » est égal à « v2 » ; sinon, renvoie « false ». Cet opérateur utilise une comparaison exacte en virgule flottante.
QDataStream &operator>>(QDataStream &stream, QVector3D &vector)
Lit un vecteur 3D à partir de l'stream spécifié dans l'vector 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.