Quaternion — Aspose.3D FOSS for Java

Methods

Quaternion edustaa yksikkökvaternionia, jota käytetään kiertoon. Se estää gimbal-lukituksen ja tarjoaa sujuvan interpoloinnin asennoiden välillä. The Transform luokka tallentaa kierron muodossa Quaternion saatavilla kautta getRotation() / setRotation().

Methods: com.aspose.threed

import com.aspose.threed.*;

Methods

MethodsMethods
Quaternion()Identiteettikvaternion (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Rakentaa neljästä komponentista

Julkiset kentät

Quaternion käyttää julkisia kenttiä komponenttien pääsyyn (ei getter-/setter-metodeja):

MethodsMethodsMethodsMethods
wdoubleq.wSkalaari (reaali) osa
xdoubleq.xX-komponentti vektoriosasta
ydoubleq.yVektorin osan Y-komponentti
zdoubleq.zVektorin osan Z-komponentti

Lasketut ominaisuudet

MethodsMethodsMethodsMethods
lengthdoublegetLength()Kvaternionin magnitudi (pitäisi olla 1.0 yksikkökvaternionille)

Staattiset kentät

MethodsMethodsMethods
IDENTITYQuaternionIdentiteettikvantti (1, 0, 0, 0) – ei kiertoa

Staattiset metodit

MethodsPaluutyyppiMethods
Quaternion.fromEuler(double x, double y, double z)QuaternionLuo kvaternionin Euler‑kulmista asteina
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionLuo kvaternionin kulmasta (radiaaneina) ja kiertokierroksen akselista

Instanssimetodit

MethodsPaluutyyppiMethods
normalize()QuaternionPalauttaa yksikköpituisen kopion
conjugate()QuaternionPalauttaa konjugaatin (vektoriosan käännetty)
inverse()QuaternionPalauttaa käänteisluku
toEulerAngles()Vector3Muuntaa Eulerin kulmat asteina
toMatrix()Matrix4Muuntaa 4x4-kiertomatriisiksi

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

Katso myös

 Suomi