Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion egységkvaterniont képvisel, amelyet forgatáshoz használnak. Elkerüli a gimbal lock-ot, és sima interpolációt biztosít a tájolások között. A Transform osztály a forgatást egy Quaternion elérhető a getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Identitás kvaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Négy komponensből épül fel

Publikus mezők

Quaternion használja publikus mezőket az összetevők eléréséhez (nem getter/setter metódusok):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wSkalár (valós) rész
xdoubleq.xX komponens a vektor részben
ydoubleq.yY komponens a vektor részben
zdoubleq.zZ komponens a vektor részben

Számított tulajdonságok

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()A kvaternion nagysága (nek kell legyen 1.0 egységkvaternion esetén)

Statikus mezők

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionAz identitás kvaternion (1, 0, 0, 0) – nincs forgatás

Statikus metódusok

EnumerationsVisszatérési típusEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionLétrehoz egy kvaterniót Euler-szögekből fokban
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionLétrehoz egy kvaterniót egy szögből (radián) és egy forgástengelyből

Példánymetódusok

EnumerationsVisszatérési típusEnumerations
normalize()QuaternionVisszaad egy egységnyi hosszúságú másolatot
conjugate()QuaternionVisszaadja a konjugáltat (negált vektorrész)
inverse()QuaternionVisszaadja a szorzati inverzét
toEulerAngles()Vector3Átalakítja Euler-szögekké fokban
toMatrix()Matrix4Átalakítja egy 4x4-es forgatási mátrixszá

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

Lásd még

 Magyar