Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 je 4x4 dvojitá presnosťová matica používaná pre afinné transformácie v 3D priestore. Je vrátená Transform.getTransformMatrix() a GlobalTransform.getTransformMatrix(), a môže byť zostavená z dekompozícií prekladu, rotácie a mierky (TRS).

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Vytvorí jednotkovú maticu
Matrix4(double m00, double m01, ... double m33)Vytvorí z 16 jednotlivých prvkov (row-major)

Statické polia

ExampleExampleExample
IDENTITYMatrix44x4 jednotková matica

Verejné polia (prístup k prvkom)

Matrix4 používa verejné polia pre prístup k prvkom: m00, m01, … m33 (celkovo 16 polí, row-major rozloženie).

Vzor poľaExampleExample
m00m33doubleJednotlivé prvky matice ako verejné polia. Prístup ako mat.m00, mat.m01, atď.

Komponenty prekladu sú v poslednom stĺpci: m03 (X), m13 (Y), m23 (Z).

Example

ExampleNávratový typExample
multiply(Matrix4 other)Matrix4Násobenie matíc; vracia novú maticu
inverse()Matrix4Vráti inverznú maticu
transpose()Matrix4Vráti transponovanú maticu
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanZástupný kód: vždy vracia false. Určené na rozloženie matice na komponenty TRS, ale zatiaľ nie je implementované.
determinant()doubleVráti determinant matice
transformPoint(Vector3 point)Vector3Transformuje bod (aplikuje úplný posun + rotáciu + škálovanie)
transformDirection(Vector3 direction)Vector3Transformuje smerový vektor (aplikuje rotáciu + škálovanie, ignoruje posun)

Statické metódy

ExampleNávratový typExample
Matrix4.translate(Vector3 t)Matrix4Vytvára maticu posunu
Matrix4.translate(double x, double y, double z)Matrix4Vytvára maticu posunu zo zložiek
Matrix4.scale(Vector3 s)Matrix4Vytvára maticu škálovania
Matrix4.scale(double x, double y, double z)Matrix4Vytvára maticu škálovania zo zložiek
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Vytvára rotačnú maticu z kvaternionu

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

Pozri tiež

 Slovenčina