Quaternion — Aspose.3D FOSS for Java

Methods

Quaternion představuje jednotkový kvaternion používaný pro rotaci. Zabraňuje gimbal locku a poskytuje plynulou interpolaci mezi orientacemi. The Transform třída ukládá rotaci jako a Quaternion přístupná přes getRotation() / setRotation().

Methods: com.aspose.threed

import com.aspose.threed.*;

Methods

MethodsMethods
Quaternion()Identitní kvaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Konstruktor ze čtyř komponent

Veřejná pole

Quaternion používá veřejná pole pro přístup ke komponentám (ne metody getter/setter):

MethodsMethodsMethodsMethods
wdoubleq.wSkalární (reálná) část
xdoubleq.xX komponenta vektorové části
ydoubleq.yY komponenta vektorové části
zdoubleq.zZ komponenta vektorové části

Vypočtené vlastnosti

MethodsMethodsMethodsMethods
lengthdoublegetLength()Velikost kvaternionu (mělo by být 1.0 pro jednotkový kvaternion)

Statické pole

MethodsMethodsMethods
IDENTITYQuaternionIdentitní kvaternion (1, 0, 0, 0) – žádná rotace

Statické metody

MethodsNávratový typMethods
Quaternion.fromEuler(double x, double y, double z)QuaternionVytvoří kvaternion z Eulerových úhlů ve stupních
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionVytvoří kvaternion z úhlu (radiány) a osy rotace

Metody instance

MethodsNávratový typMethods
normalize()QuaternionVrací kopii s jednotkovou délkou
conjugate()QuaternionVrací konjugát (negovanou vektorovou část)
inverse()QuaternionVrací multiplikativní inverzi
toEulerAngles()Vector3Převádí na Eulerovy úhly ve stupních
toMatrix()Matrix4Převádí na 4x4 rotační matici

Methods

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

Viz také

 Čeština