En esta página

quaternion QML Value Type

Un tipo quaternion tiene atributos escalares, x, y y z. Más...

Descripción detallada

Un tipo quaternion tiene atributos scalar, x, y y z.

Para crear un valor quaternion, especifíquelo como una cadena "scalar,x,y,z", o defina los componentes individualmente, o compóngalo con la función Qt.quaternion().

El tipo quaternion tiene las siguientes funciones idempotentes que pueden invocarse en QML:

Función FirmaDescripciónEjemplo
real dotProduct(quaternion otro)Devuelve el resultado real escalar del producto punto de this quaternion con el other quaternion
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 otro)Devuelve el resultado cuaterniónico de multiplicar this cuaternión con other cuaternión, lo que corresponde a aplicar las dos rotaciones
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 veces(vector3d vector)Devuelve el vector3d resultado de rotar el vector con 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 veces(factor real)Devuelve el resultado de multiplicar this quaternion por el escalar 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 otro)Devuelve el resultado de sumar this quaternion con other quaternion
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 menos(quaternion otro)Devuelve el quaternion resultante de la resta de other quaternion de this quaternion
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 normalizado()Devuelve la forma unitaria normalizada de this quaternion
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 invertido()Devuelve la inversa 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 conjugado()Devuelve el conjugado de this quaternion
var a = Qt.quaternion(1,2,3,4);
var b = a.conjugated()
console.log(b.toString()); // QQuaternion(1, -2, -3, -4)
longitud real()Devuelve el valor real escalar de la longitud de this quaternion
var a = Qt.quaternion(1,2,3,4);
var b = a.length();
console.log(b.toString()); // 5.477225575051661
vector3d toEulerAngles()Devuelve el vector3d ángulos de Euler (en grados) que corresponde a 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()Devuelve el vector4d resultado de convertir this quaternion a 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(cuaternión otro, real épsilon)Devuelve verdadero si this quaternion es aproximadamente igual a other quaternion. La aproximación será verdadera si cada atributo de this está dentro de epsilon de other. Tenga en cuenta que epsilon es un argumento opcional, el valor por defecto epsilon es 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

Las propiedades de tipo quaternion tienen Qt.quaternion(1, 0, 0, 0) como valor por defecto.

Este tipo de valor lo proporciona la importación QtQuick.

Véase también Tipos de valor 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.