Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion rappresenta un quaternion unitario usato per la rotazione. Evita il gimbal lock e fornisce un’interpolazione fluida tra le orientazioni. Il Transform classe memorizza la rotazione come un Quaternion accessibile tramite getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Quaternion di identità (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Costruisce da quattro componenti

Campi Pubblici

Quaternion usa campi pubblici per l’accesso ai componenti (non metodi getter/setter):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wParte scalare (reale)
xdoubleq.xComponente X della parte vettoriale
ydoubleq.yComponente Y della parte vettoriale
zdoubleq.zComponente Z della parte vettoriale

Proprietà Calcolate

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Magnitudine del quaternion (dovrebbe essere 1.0 per un quaternion unitario)

Campi Statici

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionIl quaternione identità (1, 0, 0, 0) – nessuna rotazione

Metodi Statici

EnumerationsTipo di ritornoEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionCrea un quaternione da angoli di Eulero in gradi
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionCrea un quaternione da un angolo (radianti) e dall’asse di rotazione

Metodi di Istanza

EnumerationsTipo di ritornoEnumerations
normalize()QuaternionRestituisce una copia di lunghezza unitaria
conjugate()QuaternionRestituisce il coniugato (parte vettoriale negata)
inverse()QuaternionRestituisce l’inverso moltiplicativo
toEulerAngles()Vector3Converte in angoli di Eulero in gradi
toMatrix()Matrix4Converte in una matrice di rotazione 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);

Vedi anche

 Italiano