Quaternion — Aspose.3D FOSS for Java

Methods

Quaternion représente un quaternion unité utilisé pour la rotation. Il évite le gimbal lock et fournit une interpolation fluide entre les orientations. Le Transform classe stocke la rotation sous forme de Quaternion accessible via getRotation() / setRotation().

Methods: com.aspose.threed

import com.aspose.threed.*;

Methods

MethodsMethods
Quaternion()Quaternion d’identité (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Construit à partir de quatre composantes

Champs publics

Quaternion utilise champs publics pour l’accès aux composantes (pas de méthodes getter/setter) :

MethodsMethodsMethodsMethods
wdoubleq.wPartie scalaire (réelle)
xdoubleq.xComposante X de la partie vectorielle
ydoubleq.yComposante Y de la partie vectorielle
zdoubleq.zComposante Z de la partie vectorielle

Propriétés calculées

MethodsMethodsMethodsMethods
lengthdoublegetLength()Magnitude du quaternion (devrait être 1.0 pour un quaternion unité)

Champs statiques

MethodsMethodsMethods
IDENTITYQuaternionLe quaternion identité (1, 0, 0, 0) – aucune rotation

Méthodes statiques

MethodsType de retourMethods
Quaternion.fromEuler(double x, double y, double z)QuaternionCrée un quaternion à partir d’angles d’Euler en degrés
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionCrée un quaternion à partir d’un angle (radians) et d’un axe de rotation

Méthodes d’instance

MethodsType de retourMethods
normalize()QuaternionRenvoie une copie de longueur unité
conjugate()QuaternionRenvoie le conjugué (partie vectorielle négative)
inverse()QuaternionRenvoie l’inverse multiplicatif
toEulerAngles()Vector3Convertit en angles d’Euler en degrés
toMatrix()Matrix4Convertit en une matrice de rotation 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);

Voir aussi

 Français