Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion predstavlja jedinični kvaternion koji se koristi za rotaciju. Izbjegava gimbal lock i omogućuje glatku interpolaciju između orijentacija. Transform klasa pohranjuje rotaciju kao Quaternion pristupačno putem getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Jedinični kvaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Konstruktor iz četiri komponente

Javna polja

Quaternion koristi javna polja za pristup komponentama (ne metode getter/setter):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wSkalarni (realni) dio
xdoubleq.xX komponenta vektorskog dijela
ydoubleq.yY komponenta vektorskog dijela
zdoubleq.zZ komponenta vektorskog dijela

Izračunata svojstva

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Magnituda kvaterniona (trebala bi biti 1.0 za jedinični kvaternion)

Statička polja

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionIdentitetni kvaternion (1, 0, 0, 0) – nema rotacije

Statičke metode

EnumerationsTip povratkaEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionStvara kvaternion iz Eulerovih kutova u stupnjevima
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionStvara kvaternion iz kuta (radijani) i osi rotacije

Metode instance

EnumerationsTip povratkaEnumerations
normalize()QuaternionVraća kopiju jedinične duljine
conjugate()QuaternionVraća konjugat (negirani vektorski dio)
inverse()QuaternionVraća multiplikativni inverz
toEulerAngles()Vector3Pretvara u Eulerove kutove u stupnjevima
toMatrix()Matrix4Pretvara u 4x4 matricu rotacije

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

Vidi također

 Hrvatski