Quaternion — Aspose.3D FOSS for Java

Example

Quaternion نمایانگر یک کواترنیون واحد مورد استفاده برای چرخش است. از قفل گیمبال جلوگیری می‌کند و درون‌یابی صاف بین جهت‌گیری‌ها را فراهم می‌سازد. The Transform کلاس چرخش را به عنوان یک Quaternion قابل دسترسی از طریق getRotation() / setRotation().

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Quaternion()کواترنیون هویت (1, 0, 0, 0)
Quaternion(double w, double x, double y, double z)از چهار مؤلفه ساخته می‌شود

فیلدهای عمومی

Quaternion استفاده می‌کند فیلدهای عمومی برای دسترسی به مؤلفه‌ها (نه متدهای getter/setter):

ExampleExampleExampleExample
wdoubleq.wقسمت اسکالر (واقعی)
xdoubleq.xمؤلفه X بخش برداری
ydoubleq.yمولفه Y بخش برداری
zdoubleq.zمولفه Z بخش برداری

ویژگی‌های محاسبه‌شده

ExampleExampleExampleExample
lengthdoublegetLength()مقدار نرمال کوآترنیون (باید باشد 1.0 برای یک کوآترنیون واحد)

فیلدهای ایستا

ExampleExampleExample
IDENTITYQuaternionکوآترنیون همانی (1, 0, 0, 0) – بدون چرخش

متدهای ایستا

Exampleنوع بازگشتExample
Quaternion.fromEuler(double x, double y, double z)Quaternionیک کوآترنیون را از زاویه‌های اویلر بر حسب درجه ایجاد می‌کند
Quaternion.fromAngleAxis(double angle, Vector3 axis)Quaternionیک کوآترنیون را از یک زاویه (رادیان) و محور چرخش ایجاد می‌کند

متدهای نمونه

Exampleنوع بازگشتExample
normalize()Quaternionیک نسخه با طول واحد برمی‌گرداند
conjugate()Quaternionمقابل (بخش برداری منفی) را برمی‌گرداند
inverse()Quaternionمعکوس ضربی را برمی‌گرداند
toEulerAngles()Vector3به زاویه‌های اویلر به درجه تبدیل می‌کند
toMatrix()Matrix4به یک ماتریس چرخش ۴×۴ تبدیل می‌کند

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

موارد مرتبط

 فارسی