Quaternion — Aspose.3D FOSS for Java

Enumerations

Quaternion mewakili quaternion unit yang digunakan untuk putaran. Ia mengelakkan gimbal lock dan menyediakan interpolasi lancar antara orientasi. Itu Transform kelas menyimpan putaran sebagai Quaternion boleh diakses melalui getRotation() / setRotation().

Enumerations: com.aspose.threed

import com.aspose.threed.*;

Enumerations

EnumerationsEnumerations
Quaternion()Quaternion Identiti (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Membina daripada empat komponen

Medan Awam

Quaternion menggunakan medan public untuk akses komponen (bukan kaedah getter/setter):

EnumerationsEnumerationsEnumerationsEnumerations
wdoubleq.wBahagian Skalar (nyata)
xdoubleq.xKomponen X bahagian vektor
ydoubleq.yKomponen Y bahagian vektor
zdoubleq.zKomponen Z bahagian vektor

Properti Terhitung

EnumerationsEnumerationsEnumerationsEnumerations
lengthdoublegetLength()Magnitud quaternion (seharusnya 1.0 untuk quaternion unit)

Medan Statik

EnumerationsEnumerationsEnumerations
IDENTITYQuaternionQuaternion identiti (1, 0, 0, 0) – tiada putaran

Kaedah Statik

EnumerationsJenis PulanganEnumerations
Quaternion.fromEuler(double x, double y, double z)QuaternionMencipta quaternion daripada sudut Euler dalam darjah
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionMencipta quaternion daripada sudut (rad) dan paksi putaran

Kaedah Instans

EnumerationsJenis PulanganEnumerations
normalize()QuaternionMengembalikan salinan bersaiz unit
conjugate()QuaternionMengembalikan konjugat (bahagian vektor yang dinyahnegasikan)
inverse()QuaternionMengembalikan songsang gandaan
toEulerAngles()Vector3Menukarkan kepada sudut Euler dalam darjah
toMatrix()Matrix4Menukarkan kepada matriks putaran 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 Melayu