Matrix4 — Aspose.3D FOSS for Java

Properties

Matrix4 הוא מטריצה של 4x4 ברמת דיוק כפולה המשמשת לשינויי אפיני במרחב תלת‑ממדי. היא מוחזרת על‑ידי Transform.getTransformMatrix() ו GlobalTransform.getTransformMatrix(), וניתן לבנות אותה מפירוקי תרגום, סיבוב וקנה מידה (TRS).

Properties: com.aspose.threed

import com.aspose.threed.*;

Properties

PropertiesProperties
Matrix4()בונה מטריצה זהות
Matrix4(double m00, double m01, ... double m33)בונה מ-16 אלמנטים בודדים (סידור לפי שורות)

שדות סטטיים

PropertiesPropertiesProperties
IDENTITYMatrix4מטריצת הזהות 4x4

שדות ציבוריים (גישה לאלמנטים)

Matrix4 משתמש ב שדות ציבוריים לגישה לאלמנט: m00, m01, … m33 (16 שדות בסך הכל, פריסה לפי שורות).

תבנית שדהPropertiesProperties
m00m33doubleאלמנטים בודדים של המטריצה כשדות ציבוריים. גישה כ- mat.m00, mat.m01, וכו'.

רכיבי ההזזה נמצאים בעמודה האחרונה: m03 (X), m13 (Y), m23 (Z).

Properties

Propertiesסוג החזרהProperties
multiply(Matrix4 other)Matrix4כפל מטריצות; מחזיר מטריצה חדשה
inverse()Matrix4מחזיר את המטריצה ההפוכה
transpose()Matrix4מחזיר את המטריצה המתהפכת
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanתבנית: תמיד מחזיר false. מיועד לפרק את המטריצה לרכיבי TRS, אך עדיין לא מיושם.
determinant()doubleמחזיר את הדטרמיננט של המטריצה
transformPoint(Vector3 point)Vector3ממירה נקודה (מיישמת תרגום מלא + סיבוב + קנה מידה)
transformDirection(Vector3 direction)Vector3ממירה וקטור כיוון (מיישמת סיבוב + קנה מידה, מתעלמת מתרגום)

מתודות סטטיות

Propertiesסוג החזרהProperties
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יוצר מטריצת סיבוב מקוואטרניון

Properties

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

ראה גם

 עברית