Quaternion — Aspose.3D FOSS for Java

Example

Quaternion birim kuaterniyonu temsil eder ve dönüş için kullanılır. Gimbal kilidini önler ve yönelimler arasında sorunsuz enterpolasyon sağlar. The Transform sınıfı dönüşü şu şekilde depolar: Quaternion şu aracılığıyla erişilebilir: getRotation() / setRotation().

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Quaternion()Kimlik kuaterniyonu (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)Dört bileşenden oluşturur

Public Alanlar

Quaternion kullanır public alanlar bileşen erişimi için (getter/setter metodları yerine):

ExampleExampleExampleExample
wdoubleq.wSkaler (gerçek) kısım
xdoubleq.xVektör kısmının X bileşeni
ydoubleq.yVektör kısmının Y bileşeni
zdoubleq.zVektör kısmının Z bileşeni

Hesaplanmış Özellikler

ExampleExampleExampleExample
lengthdoublegetLength()Kuatörün büyüklüğü (olmalı 1.0 bir birim kuaternion için)

Statik Alanlar

ExampleExampleExample
IDENTITYQuaternionKimlik kuaternionu (1, 0, 0, 0) – dönüş yok

Statik Metotlar

ExampleDönüş TipiExample
Quaternion.fromEuler(double x, double y, double z)QuaternionEuler açılarını derece cinsinden kullanarak bir kuaternion oluşturur
Quaternion.fromAngleAxis(double angle, Vector3 axis)QuaternionBir açı (radyan) ve dönüş ekseninden bir kuaternion oluşturur

Örnek Metotlar

ExampleDönüş TipiExample
normalize()QuaternionBirim uzunluklu bir kopya döndürür
conjugate()QuaternionKoniüj (negatif vektör kısmı) döndürür
inverse()QuaternionÇarpımsal tersini döndürür
toEulerAngles()Vector3Euler açılarına derece cinsinden dönüştürür
toMatrix()Matrix44x4 dönüşüm matrisine dönüştürür

Example

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

Ayrıca Bakınız

 Türkçe