Quaternion — Aspose.3D FOSS for Java

Methods

Quaternion pārstāv vienības kvaterniona, ko izmanto rotācijai. Tas novērš gimbal lock un nodrošina gludu interpolāciju starp orientācijām. The Transform klase saglabā rotāciju kā Quaternion pieejams caur getRotation() / setRotation().

Methods: com.aspose.threed

import com.aspose.threed.*;

Methods

MethodsMethods
Quaternion()Identitātes kvaternions (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Izveido no četriem komponentiem

Publiskie lauki

Quaternion izmanto publiskie lauki komponentu piekļuvei (nevis getter/setter metodes):

MethodsMethodsMethodsMethods
wdoubleq.wSkalarā (reālā) daļa
xdoubleq.xX komponente vektora daļā
ydoubleq.yY komponents vektora daļā
zdoubleq.zZ komponents vektora daļā

Aprēķinātās īpašības

MethodsMethodsMethodsMethods
lengthdoublegetLength()Kvaterniona lielums (jābūt 1.0 vienībkvaterniona gadījumā)

Statiskie lauki

MethodsMethodsMethods
IDENTITYQuaternionIdentitātes kvaternions (1, 0, 0, 0) – nav rotācijas

Statiskās metodes

MethodsAtgriešanas tipsMethods
Quaternion.fromEuler(double x, double y, double z)QuaternionIzveido kvaterniona no Eilera leņķiem grādos
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionIzveido kvaterniona no leņķa (radiānos) un rotācijas ass

Instanču metodes

MethodsAtgriešanas tipsMethods
normalize()QuaternionAtgriež vienības garuma kopiju
conjugate()QuaternionAtgriež konjugātu (negēto vektora daļu)
inverse()QuaternionAtgriež reizināšanas inversu
toEulerAngles()Vector3Pārvērš uz Eilera leņķiem grādos
toMatrix()Matrix4Pārvērš uz 4x4 rotācijas matricu

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

Skatīt arī

 Latviešu