Quaternion — Aspose.3D FOSS for Java

Example

Quaternion vertegenwoordigt een eenheidsquaternion die wordt gebruikt voor rotatie. Het voorkomt gimbal lock en biedt vloeiende interpolatie tussen oriëntaties. De Transform klasse slaat rotatie op als een Quaternion toegankelijk via getRotation() / setRotation().

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Quaternion()Identiteitsquaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Construeert uit vier componenten

Publieke velden

Quaternion gebruikt publieke velden voor componenttoegang (geen getter/setter-methoden):

ExampleExampleExampleExample
wdoubleq.wScalair (reëel) deel
xdoubleq.xX-component van het vectordeel
ydoubleq.yY-component van het vectordeel
zdoubleq.zZ-component van het vectordeel

Berekende eigenschappen

ExampleExampleExampleExample
lengthdoublegetLength()Magnitude van de quaternion (zou moeten zijn 1.0 voor een eenheidsquaternion)

Statische velden

ExampleExampleExample
IDENTITYQuaternionHet identiteitsquaternion (1, 0, 0, 0) – geen rotatie

Statische methoden

ExampleRetourtypeExample
Quaternion.fromEuler(double x, double y, double z)QuaternionMaakt een quaternion aan vanuit Eulerhoeken in graden
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionMaakt een quaternion aan vanuit een hoek (radialen) en rotatie-as

Instantiemethoden

ExampleRetourtypeExample
normalize()QuaternionRetourneert een eenheidslengtekopie
conjugate()QuaternionRetourneert de geconjugeerde (gegeneerde vectorcomponent)
inverse()QuaternionRetourneert de multiplicatieve inverse
toEulerAngles()Vector3Converteert naar Eulerhoeken in graden
toMatrix()Matrix4Converteert naar een 4x4 rotatiematrix

Example

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

Zie ook

 Nederlands