Sur cette page

quaternion QML Value Type

Un type de quaternion possède des attributs scalaires, x, y et z. Plus d'informations...

Description détaillée

Un type quaternion possède des attributs scalar, x, y et z.

Pour créer une valeur quaternion, spécifiez-la comme une chaîne "scalaire,x,y,z", ou définissez les composants individuellement, ou composez-la avec la fonction Qt.quaternion().

Le type quaternion possède les fonctions idempotentes suivantes, qui peuvent être invoquées en QML :

Signature de la fonctionDescription de la fonctionExemple
real dotProduct(quaternion other)Renvoie le résultat réel scalaire du produit point du quaternion this avec le quaternion other.
var a = Qt.quaternion(1,2,3,4);
var b = Qt.quaternion(5,6,7,8);
var c = a.dotProduct(b);
console.log(c); // 70
quaternion times(quaternion other)Renvoie le résultat de la multiplication du quaternion this avec le quaternion other, ce qui correspond à l'application des deux rotations.
var a = Qt.quaternion(1 / Math.sqrt(2), 1 / Math.sqrt(2), 0, 0);
var b = Qt.quaternion(1 / Math.sqrt(2), 0, 1 / Math.sqrt(2), 0);
var c = b.times(a);
console.log(c.toString()); // QQuaternion(0.5, 0.5, 0.5, -0.5)
vector3d times(vector3d vector)Renvoie le résultat vectoriel3d de la rotation de vector avec this quaternion
var a = Qt.quaternion(0.5,0.5,0.5,-0.5);
var b = Qt.vector3d(4,5,6);
var c = a.times(b);
console.log(c.toString()); // QVector3D(5, -6, -4)
quaternion times(real factor)Renvoie le résultat de la multiplication de this quaternion avec le scalaire factor
var a = Qt.quaternion(1,2,3,4);
var b = 4.48;
var c = a.times(b);
console.log(c.toString()); // QQuaternion(4.48, 8.96, 13.44, 17.92)
quaternion plus(quaternion other)Renvoie le résultat de l'addition du quaternion this avec le quaternion other
var a = Qt.quaternion(1,2,3,4);
var b = Qt.quaternion(5,6,7,8);
var c = a.plus(b);
console.log(c.toString()); // QQuaternion(6, 8, 10, 12)
quaternion minus(quaternion other)Renvoie le résultat de la soustraction du quaternion other au quaternion this.
var a = Qt.quaternion(1,2,3,4);
var b = Qt.quaternion(5,6,7,8);
var c = a.minus(b);
console.log(c.toString()); // QQuaternion(-4, -4, -4, -4)
quaternion normalized()Renvoie la forme unitaire normalisée du quaternion this
var a = Qt.quaternion(1,2,3,4);
var b = a.normalized();
console.log(b.toString()); // QQuaternion(0.182574, 0.365148, 0.547723, 0.730297)
quaternion inversé()Renvoie l'inverse de this quaternion
var a = Qt.quaternion(0.5,0.5,0.5,-0.5);
var b = a.inverted();
console.log(b.toString()); // QQuaternion(0.5, -0.5, -0.5, 0.5)
quaternion conjugué()Renvoie le conjugué de this quaternion
var a = Qt.quaternion(1,2,3,4);
var b = a.conjugated()
console.log(b.toString()); // QQuaternion(1, -2, -3, -4)
real length()Renvoie la valeur réelle scalaire de la longueur de this quaternion
var a = Qt.quaternion(1,2,3,4);
var b = a.length();
console.log(b.toString()); // 5.477225575051661
vector3d toEulerAngles()Renvoie le vecteur3d angles d'Euler (en degrés) qui correspond à this quaternion
var a = Qt.quaternion(0.933012,0.25,-0.25,0.066987);
var b = a.toEulerAngles();
console.log(b.toString()); // QVector3D(30, -30, -4.28846e-05)
vector4d toVector4d()Renvoie le résultat vectoriel4d de la conversion de this quaternion en vecteur4d
var a = Qt.quaternion(1,2,3,4);
var b = a.toVector4d();
console.log(b.toString()); // QVector4D(2, 3, 4, 1)
bool fuzzyEquals(quaternion other, real epsilon)Renvoie un résultat vrai si le quaternion this est approximativement égal au quaternion other. L'approximation sera vraie si chaque attribut de this se trouve à l'intérieur de epsilon de other. Notez que epsilon est un argument facultatif, la valeur par défaut de epsilon est 0,00001.
var a = Qt.quaternion(1,2,3,4);
var b = Qt.quaternion(1.0001, 1.9998, 2.0001, 3.9999);
var c = a.fuzzyEquals(b);        // default epsilon
var d = a.fuzzyEquals(b, 0.005); // supplied epsilon
console.log(c + " " + d); // false true

Les propriétés de type quaternion ont pour valeur par défaut Qt.quaternion(1, 0, 0, 0).

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

Voir également les 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.