Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 este o matrice de precizie dublă 4x4 utilizată pentru transformări afine în spațiul 3D. Este returnată de Transform.getTransformMatrix() și GlobalTransform.getTransformMatrix(), și poate fi construit din descompuneri de translație, rotație și scară (TRS).

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Construiește o matrice identitate
Matrix4(double m00, double m01, ... double m33)Se construiește din 16 elemente individuale (ordonare pe rând)

Câmpuri statice

ExampleExampleExample
IDENTITYMatrix4Matricea identitate 4x4

Câmpuri publice (Acces la elemente)

Matrix4 folosește câmpuri publice pentru accesarea elementului: m00, m01, … m33 (16 câmpuri în total, dispunere pe rânduri).

Model de câmpExampleExample
m00m33doubleElemente individuale ale matricei ca câmpuri publice. Accesați ca mat.m00, mat.m01, etc.

Componentele de translație se află în ultima coloană: m03 (X), m13 (Y), m23 (Z).

Example

ExampleTip de returnareExample
multiply(Matrix4 other)Matrix4Înmulțire de matrice; returnează o matrice nouă
inverse()Matrix4Returnează matricea inversă
transpose()Matrix4Returnează matricea transpusă
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStub: întotdeauna returnează false. Intenționat să descompună matricea în componente TRS, dar nu este încă implementat.
determinant()doubleReturnează determinantul matricei
transformPoint(Vector3 point)Vector3Transformă un punct (aplică translație completă + rotație + scalare)
transformDirection(Vector3 direction)Vector3Transformă un vector de direcție (aplică rotație + scalare, ignoră translația)

Metode statice

ExampleTip de returnareExample
Matrix4.translate(Vector3 t)Matrix4Creează o matrice de translație
Matrix4.translate(double x, double y, double z)Matrix4Creează o matrice de translație din componente
Matrix4.scale(Vector3 s)Matrix4Creează o matrice de scalare
Matrix4.scale(double x, double y, double z)Matrix4Creează o matrice de scalare din componente
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Creează o matrice de rotație dintr-un quaternion

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

Vezi și

 Română