Quaternion — Aspose.3D FOSS for Java

Example

Quaternion predstavuje jednotkový kvaternion používaný na rotáciu. Zabráni gimbal locku a poskytuje plynulú interpoláciu medzi orientáciami. The Transform trieda ukladá rotáciu ako a Quaternion prístupná cez getRotation() / setRotation().

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Quaternion()Identitný kvaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Vytvára zo štyroch komponentov

Verejné polia

Quaternion používa verejné polia pre prístup ku komponentom (nie metódy getter/setter):

ExampleExampleExampleExample
wdoubleq.wSkalárna (reálna) časť
xdoubleq.xX komponent vektorovej časti
ydoubleq.yZložka Y vektorovej časti
zdoubleq.zZložka Z vektorovej časti

Vypočítané vlastnosti

ExampleExampleExampleExample
lengthdoublegetLength()Veľkosť kvaternionu (mala by byť 1.0 pre jednotkový kvaternion)

Statické polia

ExampleExampleExample
IDENTITYQuaternionIdentita kvaternionu (1, 0, 0, 0) – žiadna rotácia

Statické metódy

ExampleNávratový typExample
Quaternion.fromEuler(double x, double y, double z)QuaternionVytvorí kvaternion z Eulerových uhlov v stupňoch
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionVytvorí kvaternion z uhla (radiány) a osi rotácie

Inštančné metódy

ExampleNávratový typExample
normalize()QuaternionVráti kópiu jednotkovej dĺžky
conjugate()QuaternionVráti konjugát (negovanú vektorovú časť)
inverse()QuaternionVráti multiplikatívnu inverziu
toEulerAngles()Vector3Prevedie na Eulerove uhly v stupňoch
toMatrix()Matrix4Prevedie na 4x4 rotačnú maticu

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

Pozri tiež

 Slovenčina