Sur cette page

quaternion QML Value Type

Un type « quaternion » comporte des attributs scalaire, x, y et z. En savoir plus…

Import Statement: import QtQuick

Description détaillée

Un type « quaternion » possède les attributs « scalar », « x », « y » et « z ».

Pour créer une valeur de type « quaternion », spécifiez-la sous la forme d’une chaîne «scalar,x,y,z», définissez ses composantes individuellement ou composez-la à l’aide de la fonction Qt.quaternion().

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

Signature de la fonctionDescriptionExemple
real dotProduct(quaternion other)Renvoie le résultat scalaire de type réel du produit scalaire 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 quaternion résultant de la multiplication du quaternion this par 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 vecteur 3D résultant de la rotation de l’ vector e par le quaternion this
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 quaternion résultant de la multiplication du quaternion « this » par 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 autre)Renvoie le quaternion résultant de l'addition du quaternion « this » et du 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 moins(quaternion autre)Renvoie le quaternion résultant de la soustraction du quaternion « other » du 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 normalisé()Renvoie la forme normalisée unitaire 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 du quaternion d this
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 conjugated()Renvoie le conjugué du quaternion d'this
var a = Qt.quaternion(1,2,3,4);
var b = a.conjugated()
console.log(b.toString()); // QQuaternion(1, -2, -3, -4)
longueur réelle()Renvoie la valeur scalaire réelle de la longueur du quaternion d'this
var a = Qt.quaternion(1,2,3,4);
var b = a.length();
console.log(b.toString()); // 5.477225575051661
vector3d toEulerAngles()Renvoie les angles d'Euler vector3d (en degrés) correspondant à l this e 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 vector4d de la conversion d'un quaternion de type this en un vector4d
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 « true » si le quaternion ` this ` est approximativement égal au quaternion ` other `. L’approximation sera considérée comme vraie si chaque attribut de ` this ` se situe dans une fourchette de ` epsilon ` par rapport à ` 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 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.