Sur cette page

vector3d QML Value Type

une valeur comportant les attributs x, y et z. En savoir plus...

Import Statement: import QtQuick

Description détaillée

Le type « vector3d » désigne une valeur comportant les attributs « x », « y » et « z ».

Les propriétés de type « vector3d » ont par défaut un vecteur nul. Les attributs x, y et z sont alors définis sur 0.

Pour créer une valeur de type « vector3d », spécifiez-la sous la forme d’une chaîne « x,y,z » :

Rotation { angle: 60; axis: "0,1,0" }

ou à l'aide de la fonction Qt.vector3d() :

Rotation { angle: 60; axis: Qt.vector3d(0, 1, 0) }

ou sous forme de composantes distinctes x, y et z:

Rotation { angle: 60; axis.x: 0; axis.y: 1; axis.z: 0 }

Chaque attribut d’une valeur vector3d est stocké en interne sous la forme d’un nombre à virgule flottante simple précision (float).

Lors de l’intégration avec C++, notez que toute valeur de type QVector3D transmise à QML depuis C++ est automatiquement convertie en une valeur de type vector3d, et inversement.

Le type vector3d dispose des fonctions idempotentes suivantes, qui peuvent être appelées en QML :

Signature de la fonctionDescriptionExemple
vector3d crossProduct(vector3d other)Renvoie le vecteur 3D résultant du produit vectoriel de vecteur this 3D avec le vecteur 3D other
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.crossProduct(b);
console.log(c.toString()); // QVector3D(-3, 6, -3)
real dotProduct(vector3d other)Renvoie le résultat scalaire de type réel du produit scalaire du vecteur 3D « this » avec le vecteur 3D « other »
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.dotProduct(b);
console.log(c); // 32
vector3d times(matrix4x4 matrix)Renvoie le vecteur 3D résultant de la transformation du vecteur 3D « this » à l’aide de la matrice matrix 4x4, la matrice étant appliquée après le vecteur
var a = Qt.vector3d(1,2,3);
var b = Qt.matrix4x4(4,5,6,7,8,9,10,11,
                     12,13,14,15,16,17,18,19);
var c = a.times(b);
console.log(c.toString());
// QVector3D(0.774194, 0.849462, 0.924731)
vector3d times(vector3d other)Renvoie le vecteur 3D résultant de la multiplication d'this vecteur 3D par le vecteur 3D other
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.times(b);
console.log(c.toString()); // QVector3D(4, 10, 18)
vector3d times(real factor)Renvoie le vecteur 3D résultant de la multiplication du vecteur 3D « this » par le scalaire factor
var a = Qt.vector3d(1,2,3);
var b = 4.48;
var c = a.times(b);
console.log(c.toString()); // QVector3D(4.48, 8.96, 13.44)
vector3d plus(vector3d other)Renvoie le résultat vector3d de l'addition du vector3d « this » avec le vector3d « other »
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.plus(b);
console.log(c.toString()); // QVector3D(5, 7, 9)
vector3d minus(vector3d other)Renvoie le vecteur 3D résultant de la soustraction du vecteur 3D « other » du vecteur 3D « this »
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(4,5,6);
var c = a.minus(b);
console.log(c.toString()); // QVector3D(-3, -3, -3)
vecteur3D normalisé()Renvoie la forme normalisée du vecteur this
var a = Qt.vector3d(1,2,3);
var b = a.normalized();
console.log(b.toString());
// QVector3D(0.267261, 0.534522, 0.801784)
real longueur()Renvoie la valeur scalaire réelle de la longueur du vecteur 3D de this
var a = Qt.vector3d(1,2,3);
var b = a.length();
console.log(b.toString()); // 3.7416573867739413
vector2d toVector2d()Renvoie le résultat vector2d obtenu en convertissant le vecteur 3D « this » en un vecteur 2D
var a = Qt.vector3d(1,2,3);
var b = a.toVector2d();
console.log(b.toString()); // QVector2D(1, 2)
vector4d toVector4d()Renvoie le résultat vector4d de la conversion d'this vector3d en vector4d
var a = Qt.vector3d(1,2,3);
var b = a.toVector4d();
console.log(b.toString()); // QVector4D(1, 2, 3, 0)
bool fuzzyEquals(vector3d other, real epsilon)Renvoie « true » si le vecteur 3D « this » est approximativement égal au vecteur 3D « other ». L’approximation sera vraie si chaque attribut de « this » se trouve à moins de « epsilon » de « other ». Notez que « epsilon » est un argument facultatif ; la valeur par défaut de « epsilon » est 0,00001.
var a = Qt.vector3d(1,2,3);
var b = Qt.vector3d(1.0001, 1.9998, 2.0001);
var c = a.fuzzyEquals(b);        // default epsilon
var d = a.fuzzyEquals(b, 0.005); // supplied epsilon
console.log(c + " " + d); // false true

Ce type de valeur est fourni par l’importation QtQuick.

Voir également Types de valeurs QML.

© 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.