Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion representa um quaternion unitário usado para rotação. Ele evita o bloqueio de gimbal e fornece interpolação suave entre orientações. O Transform classe armazena a rotação como um Quaternion acessível via getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Quaternion de Identidade (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Constrói a partir de quatro componentes

Campos Públicos

Quaternion usa campos públicos para acesso aos componentes (não métodos getter/setter):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wParte escalar (real)
xdoubleq.xComponente X da parte vetorial
ydoubleq.yComponente Y da parte vetorial
zdoubleq.zComponente Z da parte vetorial

Propriedades Calculadas

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Magnitude do quaternion (deve ser 1.0 para um quaternion unitário)

Campos Estáticos

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionO quaternion identidade (1, 0, 0, 0) – sem rotação

Métodos Estáticos

EnumerationsTipo de RetornoEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionCria um quaternion a partir de ângulos de Euler em graus
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionCria um quaternion a partir de um ângulo (radianos) e eixo de rotação

Métodos de Instância

EnumerationsTipo de RetornoEnumerations
normalize()QuaternionRetorna uma cópia de comprimento unitário
conjugate()QuaternionRetorna o conjugado (parte vetorial negada)
inverse()QuaternionRetorna o inverso multiplicativo
toEulerAngles()Vector3Converte para ângulos de Euler em graus
toMatrix()Matrix4Converte para uma matriz de rotação 4x4

Enumerations

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);

Veja também

 Português