Matrix4 — Aspose.3D FOSS for Java

FbxSaveOptions

Matrix4 yra 4x4 dvigubo tikslumo matrica, naudojama afiniams transformavimams 3D erdvėje. Ji grąžinama Transform.getTransformMatrix() ir GlobalTransform.getTransformMatrix(), ir gali būti sukonstruota iš perkėlimo, sukimo ir mastelio (TRS) dekompozicijų.

FbxSaveOptions: com.aspose.threed

import com.aspose.threed.*;

FbxSaveOptions

FbxSaveOptionsFbxSaveOptions
Matrix4()Sukuria vienetinę matricą
Matrix4(double m00, double m01, ... double m33)Sukuria iš 16 atskirų elementų (eilučių tvarka)

Statiniai laukai

FbxSaveOptionsFbxSaveOptionsFbxSaveOptions
IDENTITYMatrix44x4 vienetinė matrica

Vieši laukai (elementų prieiga)

Matrix4 naudoja viešus laukus elementų prieigai: m00, m01, … m33 (iš viso 16 laukų, eilutės pagrindu išdėstyta).

Laukų šablonasFbxSaveOptionsFbxSaveOptions
m00m33doubleIndividualūs matricos elementai kaip vieši laukai. Prieiga kaip mat.m00, mat.m01, ir t.t.

Perkėlimo komponentai yra paskutinėje stulpelyje: m03 (X), m13 (Y), m23 (Z).

FbxSaveOptions

FbxSaveOptionsGrąžinimo tipasFbxSaveOptions
multiply(Matrix4 other)Matrix4Matricos daugyba; grąžina naują matricą
inverse()Matrix4Grąžina atvirkštinę matricą
transpose()Matrix4Grąžina transponuotą matricą
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStubas: visada grąžina false. Skirta išskaidyti matricą į TRS komponentus, tačiau dar neįgyvendinta.
determinant()doubleGrąžina matricos determinantą
transformPoint(Vector3 point)Vector3Transformuoja tašką (taikoma pilna translacija + sukimas + mastelis)
transformDirection(Vector3 direction)Vector3Transformuoja krypties vektorių (taikoma sukimas + mastelis, ignoruojama translacija)

Statiniai metodai

FbxSaveOptionsGrąžinimo tipasFbxSaveOptions
Matrix4.translate(Vector3 t)Matrix4Sukuria translacijos matricą
Matrix4.translate(double x, double y, double z)Matrix4Sukuria translacijos matricą iš komponentų
Matrix4.scale(Vector3 s)Matrix4Sukuria mastelio matricą
Matrix4.scale(double x, double y, double z)Matrix4Sukuria mastelio matricą iš komponentų
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Sukuria sukimosi matricą iš kvaterniono

FbxSaveOptions

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

Žr. taip pat

 Lietuvių