Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion representerer en unit quaternion brukt for rotasjon. Den unngår gimbal lock og gir jevn interpolasjon mellom orienteringer. Den Transform class lagrer rotasjon som en Quaternion tilgjengelig via getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Identity quaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Konstruktør fra fire komponenter

Offentlige felter

Quaternion bruker offentlige felter for komponenttilgang (ikke getter/setter‑metoder):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wSkalar (reell) del
xdoubleq.xX‑komponent av vektordelen
ydoubleq.yY‑komponent av vektordelen
zdoubleq.zZ‑komponent av vektordelen

Beregnede egenskaper

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Magnituden til kvaternionen (bør være 1.0 for en unit quaternion)

Statisk felter

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionDen identity quaternion (1, 0, 0, 0) – ingen rotasjon

Statisk metoder

EnumerationsReturtypeEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionOppretter en kvaternion fra Euler-vinkler i grader
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionOppretter en kvaternion fra en vinkel (radianer) og rotasjonsakse

Instansmetoder

EnumerationsReturtypeEnumerations
normalize()QuaternionReturnerer en kopi med enhetslengde
conjugate()QuaternionReturnerer konjugatet (negert vektordel)
inverse()QuaternionReturnerer den multiplikative inversen
toEulerAngles()Vector3Konverterer til Euler‑vinkler i grader
toMatrix()Matrix4Konverterer til en 4x4 rotasjonsmatrise

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

Se også

 Norsk