Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 یک ماتریس ۴×۴ با دقت دوگانه است که برای تبدیلات افین در فضای سه‌بعدی استفاده می‌شود. این ماتریس توسط Transform.getTransformMatrix() و GlobalTransform.getTransformMatrix(), و می‌تواند از تجزیه‌های ترجمه، چرخش و مقیاس (TRS) ساخته شود.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()یک ماتریس همانی می‌سازد
Matrix4(double m00, double m01, ... double m33)از ۱۶ عنصر جداگانه (به ترتیب سطر) می‌سازد

فیلدهای ثابت

ExampleExampleExample
IDENTITYMatrix4ماتریس همانی ۴×۴

فیلدهای عمومی (دسترسی به عنصر)

Matrix4 استفاده می‌کند فیلدهای عمومی برای دسترسی به عنصر: m00, m01, … m33 (۱۶ فیلد کل، چیدمان ردیفی).

الگوی فیلدExampleExample
m00m33doubleعناصر ماتریس به صورت فیلدهای عمومی. دسترسی به صورت mat.m00, mat.m01,، و غیره.

مولفه‌های ترجمه در ستون آخر قرار دارند: m03 (X), m13 (Y), m23 (Z).

Example

Exampleنوع بازگشتExample
multiply(Matrix4 other)Matrix4ضرب ماتریس؛ یک ماتریس جدید برمی‌گرداند
inverse()Matrix4ماتریس معکوس را برمی‌گرداند
transpose()Matrix4ماتریس ترانهاده را برمی‌گرداند
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStub: همیشه برمی‌گرداند false. منظور تجزیه ماتریس به مؤلفه‌های TRS است، اما هنوز پیاده‌سازی نشده است.
determinant()doubleدترمینان ماتریس را برمی‌گرداند.
transformPoint(Vector3 point)Vector3نقطه‌ای را تبدیل می‌کند (ترجمه کامل + چرخش + مقیاس را اعمال می‌کند).
transformDirection(Vector3 direction)Vector3بردار جهت را تبدیل می‌کند (چرخش + مقیاس را اعمال می‌کند، ترجمه را نادیده می‌گیرد).

متدهای ایستا

Exampleنوع بازگشتExample
Matrix4.translate(Vector3 t)Matrix4یک ماتریس ترجمه ایجاد می‌کند.
Matrix4.translate(double x, double y, double z)Matrix4یک ماتریس ترجمه از مؤلفه‌ها ایجاد می‌کند.
Matrix4.scale(Vector3 s)Matrix4یک ماتریس مقیاس ایجاد می‌کند.
Matrix4.scale(double x, double y, double z)Matrix4یک ماتریس مقیاس را از مؤلفه‌ها ایجاد می‌کند
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4یک ماتریس چرخش را از یک کواترنیون ایجاد می‌کند

Example

import com.aspose.threed.*;

Scene scene = new Scene();
Node node = scene.getRootNode().createChildNode("box");
node.getTransform().setTranslation(1.0, 2.0, 3.0);
node.getTransform().setEulerAngles(0.0, 45.0, 0.0);

// Read the transform matrix
Matrix4 m = node.getTransform().getTransformMatrix();
System.out.println("Translation X: " + m.m03);   // 1.0

// Matrix multiplication
Matrix4 translate = Matrix4.translate(5.0, 0.0, 0.0);
Matrix4 scale = Matrix4.scale(2.0, 2.0, 2.0);
Matrix4 combined = translate.multiply(scale);

// Inverse
Matrix4 inv = m.inverse();

// Transform a point
Vector3 point = new Vector3(1.0, 0.0, 0.0);
Vector3 transformed = m.transformPoint(point);
System.out.println(transformed);

موارد مرتبط

 فارسی