QVector3D Class
La classe QVector3D représente un vecteur ou un sommet dans l'espace 3D. Plus d'informations...
| 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 de Rendering in 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) |
Non-membres apparentés
| bool | qFuzzyCompare(QVector3D v1, QVector3D v2) |
| 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 sont l'un des principaux éléments constitutifs de la représentation et du dessin en 3D. Ils se composent de trois coordonnées finies en virgule flottante, traditionnellement appelées x, y et z.
La classe QVector3D peut également être utilisée pour représenter les sommets dans l'espace 3D. Il n'est donc pas nécessaire de fournir une classe de vertex distincte.
Voir également QVector2D, QVector4D, et QQuaternion.
Documentation des fonctions membres
[constexpr noexcept] QVector3D::QVector3D()
Construit un vecteur nul, c'est-à-dire dont les coordonnées sont (0, 0, 0).
[explicit constexpr noexcept] QVector3D::QVector3D(QPoint point)
Construit un vecteur avec les coordonnées x et y d'un site 2D point, et une coordonnée z de 0.
[explicit constexpr noexcept] QVector3D::QVector3D(QPointF point)
Construit un vecteur avec les coordonnées x et y d'un site 2D point, et une coordonnée z de 0.
[explicit constexpr noexcept] QVector3D::QVector3D(QVector2D vector)
Construit un vecteur 3D à partir du vecteur 2D spécifié vector. La coordonnée z est mise à zéro.
Voir également toVector2D().
[explicit constexpr noexcept] QVector3D::QVector3D(QVector4D vector)
Construit un vecteur 3D à partir du vecteur 4D spécifié vector. La coordonnée w est abandonnée.
Voir également toVector4D().
[constexpr noexcept] QVector3D::QVector3D(QVector2D vector, float zpos)
Construit un vecteur 3D à partir du vecteur 2D spécifié vector. La coordonnée z est fixée à zpos, qui doit être finie.
Voir également toVector2D().
[constexpr noexcept] QVector3D::QVector3D(float xpos, float ypos, float zpos)
Construit 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 croisé des vecteurs v1 et v2, qui est normal au plan couvert par v1 et v2. Il sera nul si les deux vecteurs sont parallèles.
Voir aussi normal().
[noexcept] float QVector3D::distanceToLine(QVector3D point, QVector3D direction) const
Renvoie la distance entre ce sommet et une ligne définie par point et le vecteur unitaire direction.
Si direction est un vecteur nul, il ne définit pas de ligne. 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é à un vecteur unitaire.
La valeur de retour sera négative si le sommet est en dessous du plan, ou nulle s'il est sur le plan.
Voir aussi 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 de retour sera négative si le sommet est en dessous du plan, ou nulle s'il est sur le plan.
Les deux vecteurs qui définissent le plan sont plane2 - plane1 et plane3 - plane1.
Voir aussi 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 point de v1 et v2.
[constexpr noexcept] bool QVector3D::isNull() const
Renvoie true si les coordonnées x, y et z sont fixées à 0,0, sinon renvoie false.
[noexcept] float QVector3D::length() const
Renvoie la longueur du vecteur à partir de l'origine.
Voir aussi lengthSquared() et normalized().
[constexpr noexcept] float QVector3D::lengthSquared() const
Renvoie le carré de la longueur du vecteur à partir de l'origine. Ceci est équivalent au produit du point du vecteur avec lui-même.
Voir aussi length() et dotProduct().
[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2)
Renvoie le vecteur normal unitaire d'un plan traversé par les vecteurs v1 et v2, qui ne doivent pas être parallèles l'un à l'autre.
Utilisez crossProduct() pour calculer le produit croisé de v1 et v2 si vous n'avez pas besoin que le résultat soit normalisé à un 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 traversé par les vecteurs v2 - v1 et v3 - v1, qui ne doivent pas être parallèles entre eux.
Utilisez crossProduct() pour calculer le produit croisé de v2 - v1 et v3 - v1 si vous n'avez pas besoin que le résultat soit normalisé à un vecteur unitaire.
Voir également crossProduct() et distanceToPlane().
[noexcept] void QVector3D::normalize()
Normalise le vecteur courant en place. Rien ne se passe si ce vecteur est un vecteur nul ou si la longueur du vecteur est très proche de 1.
Voir aussi length() et normalized().
[noexcept] QVector3D QVector3D::normalized() const
Renvoie la forme vectorielle unitaire normalisée 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 sera retourné tel quel. Sinon, la forme normalisée du vecteur de longueur 1 sera renvoyée.
Voir aussi length() et normalize().
QVector3D QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
Renvoie les coordonnées de fenêtre de ce vecteur initialement en coordonnées objet/modèle en utilisant la matrice de vue du modèle modelView, la matrice de projection projection et les dimensions de la fenêtre de vue viewport.
Lors de la transformation de l'espace clip à l'espace normalisé, une division par la composante w sur les composantes du vecteur a lieu. Pour éviter une division par 0 si w est égal à 0, il est fixé à 1.
Remarque : les coordonnées y renvoyées sont dans l'orientation OpenGL. OpenGL s'attend à ce que le bas soit à 0 alors que pour Qt le haut est à 0.
Voir aussi unproject().
[constexpr noexcept] void QVector3D::setX(float x)
Fixe la coordonnée x de ce point à la coordonnée finie x donnée.
Voir aussi x(), setY() et setZ().
[constexpr noexcept] void QVector3D::setY(float y)
Définit la coordonnée y de ce point à la coordonnée finie y donnée.
Voir aussi y(), setX() et setZ().
[constexpr noexcept] void QVector3D::setZ(float z)
Fixe la coordonnée z de ce point à la coordonnée finie z donnée.
Voir aussi z(), setX() et setY().
[constexpr noexcept] QPoint QVector3D::toPoint() const
Renvoie la forme QPoint de ce vecteur 3D. La coordonnée z est abandonnée. Les coordonnées x et y sont arrondies aux entiers les plus proches.
Voir aussi 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 aussi toPoint() et toVector2D().
[constexpr noexcept] QVector2D QVector3D::toVector2D() const
Renvoie la forme vectorielle 2D de ce vecteur 3D, sans la coordonnée z.
Voir aussi toVector4D() et toPoint().
[constexpr noexcept] QVector4D QVector3D::toVector4D() const
Renvoie la forme 4D de ce vecteur 3D, la coordonnée w étant fixée à zéro.
Voir aussi toVector2D() et toPoint().
QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
Renvoie les coordonnées objet/modèle de ce vecteur initialement en coordonnées de fenêtre en utilisant la matrice de vue du modèle modelView, la matrice de projection projection et les dimensions de la fenêtre de visualisation viewport.
Lors de la transformation du clip en 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, il est fixé à 1.
Note : les coordonnées y dans viewport doivent utiliser l'orientation OpenGL. OpenGL s'attend à ce que le bas soit à 0 alors que pour Qt le haut est à 0.
Voir aussi project().
[constexpr noexcept] float QVector3D::x() const
Renvoie la coordonnée x de ce point.
Voir aussi setX(), y() et z().
[constexpr noexcept] float QVector3D::y() const
Renvoie la coordonnée y de ce point.
Voir aussi setY(), x() et z().
[constexpr noexcept] float QVector3D::z() const
Renvoie la coordonnée z de ce point.
Voir aussi setZ(), x() et y().
QVector3D::operator QVariant() const
Renvoie le vecteur 3D sous forme de QVariant.
[constexpr noexcept] QVector3D &QVector3D::operator*=(float factor)
Multiplie les coordonnées de ce vecteur par la valeur finie donnée factor et renvoie une référence à ce vecteur.
Voir aussi 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 : il ne s'agit pas de la même chose que le produit crossProduct() de ce vecteur et de vector(ses composantes s'additionnent au produit en points de ce vecteur et de vector).
Il s'agit d'une fonction surchargée.
Voir aussi crossProduct(), operator/=(), et operator*().
[constexpr noexcept] QVector3D &QVector3D::operator+=(QVector3D vector)
Ajoute l'adresse vector à ce vecteur et renvoie une référence à ce vecteur.
Voir aussi operator-=().
[constexpr noexcept] QVector3D &QVector3D::operator-=(QVector3D vector)
Soustrait la valeur vector 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.
L'adresse vector ne doit pas avoir de composante nulle ou NaN.
Voir aussi operator*=() et operator/().
[constexpr] QVector3D &QVector3D::operator/=(float divisor)
Divise les coordonnées de ce vecteur par divisor, et renvoie une référence à ce vecteur. L'adresse divisor ne doit pas être zéro ou NaN.
Voir aussi operator*=() et operator/().
[constexpr] float &QVector3D::operator[](int i)
Renvoie la composante du vecteur à la position d'index i sous forme de référence modifiable.
i doit être une position d'index valide dans le vecteur (c'est-à-dire 0 <= i < 3).
[constexpr] float QVector3D::operator[](int i) const
Renvoie la composante du vecteur à la position d'index i.
i doit être une position d'index valide dans le vecteur (c'est-à-dire 0 <= i < 3).
Non-membres apparentés
[noexcept] bool qFuzzyCompare(QVector3D v1, QVector3D v2)
Renvoie true si v1 et v2 sont égaux, en tenant compte d'un petit facteur de flou pour les comparaisons en virgule flottante ; faux dans le cas contraire.
[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 formé en multipliant chaque composant de v1 par le composant correspondant de v2.
Remarque : ce n'est pas la même chose que le crossProduct() de v1 et v2(ses composantes s'additionnent au produit de points de v1 et v2).
Voir également QVector3D::crossProduct().
[constexpr noexcept] QVector3D operator*(QVector3D vector, float factor)
Renvoie une copie de l'adresse vector donnée, multipliée par l'adresse finie factor donnée.
Voir aussi QVector3D::operator*=().
[constexpr noexcept] QVector3D operator*(float factor, QVector3D vector)
Renvoie une copie de l'adresse vector donnée, multipliée par l'adresse finie factor donnée.
Voir aussi QVector3D::operator*=().
[constexpr noexcept] QVector3D operator+(QVector3D v1, QVector3D v2)
Renvoie un objet QVector3D qui est la somme des vecteurs donnés, v1 et v2; chaque composante est ajoutée séparément.
Voir aussi QVector3D::operator+=().
[constexpr noexcept] QVector3D operator-(QVector3D v1, QVector3D v2)
Renvoie un objet QVector3D formé en soustrayant v2 de v1; chaque composant est soustrait séparément.
Voir aussi QVector3D::operator-=().
[constexpr noexcept] QVector3D operator-(QVector3D vector)
Renvoie un objet QVector3D formé en changeant le signe de chaque composante de l'objet vector.
É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 formé en divisant chaque composante de vector donnée par la composante correspondante de divisor donnée.
L'objet divisor ne doit pas avoir de composante nulle ou NaN.
Voir aussi QVector3D::operator/=().
[constexpr] QVector3D operator/(QVector3D vector, float divisor)
Renvoie l'objet QVector3D formé par la division de chaque composante de l'objet vector par l'objet divisor.
L'adresse divisor ne doit pas être zéro ou NaN.
Voir aussi QVector3D::operator/=().
QDataStream &operator<<(QDataStream &stream, QVector3D vector)
Écrit la donnée vector dans la donnée stream et renvoie une référence au flux.
Voir aussi Serializing Qt Data Types (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 depuis le site stream dans le site vector et renvoie une référence au flux.
Voir aussi Serializing Qt Data Types (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.