Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion mewakili quaternion satuan yang digunakan untuk rotasi. Ini menghindari gimbal lock dan menyediakan interpolasi halus antara orientasi. The Transform kelas menyimpan rotasi sebagai a Quaternion dapat diakses melalui getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Quaternion Identitas (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Membangun dari empat komponen

Field Publik

Quaternion menggunakan field publik untuk mengakses komponen (bukan metode getter/setter):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wBagian skalar (nyata)
xdoubleq.xKomponen X dari bagian vektor
ydoubleq.yKomponen Y dari bagian vektor
zdoubleq.zKomponen Z dari bagian vektor

Properti Terhitung

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Magnitudo kuaternion (harus 1.0 untuk kuaternion satuan)

Field Statis

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionKuaternion identitas (1, 0, 0, 0) – tidak ada rotasi

Metode Statis

EnumerationsTipe PengembalianEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionMembuat kuaternion dari sudut Euler dalam derajat
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionMembuat kuaternion dari sudut (radian) dan sumbu rotasi

Metode Instansi

EnumerationsTipe PengembalianEnumerations
normalize()QuaternionMengembalikan salinan dengan panjang satu unit
conjugate()QuaternionMengembalikan konjugat (bagian vektor yang dinegasikan)
inverse()QuaternionMengembalikan invers perkalian
toEulerAngles()Vector3Mengonversi ke sudut Euler dalam derajat
toMatrix()Matrix4Mengonversi ke matriks rotasi 4x4

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

Lihat Juga

 Bahasa Indonesia