Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion reprezentuje jednostkowy kwaternion używany do rotacji. Unika blokady gimbal i zapewnia płynną interpolację pomiędzy orientacjami. Ten Transform klasa przechowuje rotację jako Quaternion dostępny poprzez getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Kwaternion jednostkowy (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Konstruktor z czterech składników

Pola publiczne

Quaternion używa publiczne pola do dostępu do komponentów (nie metod getter/setter):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wCzęść skalarna (rzeczywista)
xdoubleq.xSkładnik X części wektorowej
ydoubleq.ySkładnik Y części wektorowej
zdoubleq.zSkładnik Z części wektorowej

Właściwości obliczane

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Moduł kwaternionu (powinien być 1.0 dla kwaternionu jednostkowego)

Pola statyczne

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionKwaternion jednostkowy (1, 0, 0, 0) – brak rotacji

Metody statyczne

EnumerationsTyp zwracanyEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionTworzy kwaternion z kątów Eulera w stopniach
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionTworzy kwaternion z kąta (radiany) i osi obrotu

Metody instancji

EnumerationsTyp zwracanyEnumerations
normalize()QuaternionZwraca kopię o długości jednostkowej
conjugate()QuaternionZwraca sprzężenie (zanegowaną część wektorową)
inverse()QuaternionZwraca odwrotność multiplikatywną
toEulerAngles()Vector3Konwertuje na kąty Eulera w stopniach
toMatrix()Matrix4Konwertuje na macierz obrotu 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);

Zobacz także

 Polski