Quaternion — Aspose.3D FOSS for Java

Methods

Quaternion representa un cuaternión unitario usado para rotación. Evita el bloqueo de gimbal y proporciona una interpolación suave entre orientaciones. El Transform clase almacena la rotación como un Quaternion accesible a través de getRotation() / setRotation().

Methods: com.aspose.threed

import com.aspose.threed.*;

Methods

MethodsMethods
Quaternion()Cuaternión de identidad (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Construye a partir de cuatro componentes

Campos públicos

Quaternion usa campos públicos para acceso a componentes (no métodos getter/setter):

MethodsMethodsMethodsMethods
wdoubleq.wParte escalar (real)
xdoubleq.xComponente X de la parte vectorial
ydoubleq.yComponente Y de la parte vectorial
zdoubleq.zComponente Z de la parte vectorial

Propiedades calculadas

MethodsMethodsMethodsMethods
lengthdoublegetLength()Magnitud del cuaternión (debería ser 1.0 para un cuaternión unitario)

Campos estáticos

MethodsMethodsMethods
IDENTITYQuaternionEl cuaternión identidad (1, 0, 0, 0) – sin rotación

Métodos estáticos

MethodsTipo de retornoMethods
Quaternion.fromEuler(double x, double y, double z)QuaternionCrea un cuaternión a partir de ángulos de Euler en grados
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionCrea un cuaternión a partir de un ángulo (radianes) y un eje de rotación

Métodos de instancia

MethodsTipo de retornoMethods
normalize()QuaternionDevuelve una copia de longitud unitaria
conjugate()QuaternionDevuelve el conjugado (parte vectorial negada)
inverse()QuaternionDevuelve el inverso multiplicativo
toEulerAngles()Vector3Convierte a ángulos de Euler en grados
toMatrix()Matrix4Convierte a una matriz de rotación 4x4

Methods

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.*;

Scene scene = new Scene();
Node node = scene.getRootNode().createChildNode("rotated");

// Create from Euler angles (degrees)
Quaternion q = Quaternion.fromEuler(0.0, 90.0, 0.0);
node.getTransform().setRotation(q);

// Read back as Euler
Vector3 euler = node.getTransform().getEulerAngles();
System.out.println(euler);   // approximately (0, 90, 0)

// Create from angle-axis
Quaternion q2 = Quaternion.fromAngleAxis(Math.toRadians(45), Vector3.UNIT_Y);
node.getTransform().setRotation(q2);

// Combine rotations via multiply
Quaternion start = Quaternion.IDENTITY;
Quaternion end = Quaternion.fromEuler(0.0, 180.0, 0.0);
Quaternion combined = Quaternion.multiply(start, end);

Ver también

 Español