Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 egy 4x4 dupla-pontosságú mátrix, amelyet affinn átalakításokhoz használnak 3D térben. Visszaadja a Transform.getTransformMatrix() és GlobalTransform.getTransformMatrix(), és felépíthető a transzláció, rotáció és skálázás (TRS) dekompozíciókból.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Létrehozza az egységmátrixot
Matrix4(double m00, double m01, ... double m33)Létrehozza 16 egyedi elem (sor-major) alapján

Statikus mezők

ExampleExampleExample
IDENTITYMatrix4A 4x4-es egységmátrix

Publikus mezők (elemhozzáférés)

Matrix4 használja nyilvános mezőket az elemek eléréséhez: m00, m01, … m33 (összesen 16 mező, sor-major elrendezés).

MezőmintaExampleExample
m00m33doubleAz egyes mátrixelemek nyilvános mezőkként. Hozzáférés mint mat.m00, mat.m01, stb.

A transzláció komponensek az utolsó oszlopban vannak: m03 (X), m13 (Y), m23 (Z).

Example

ExampleVisszatérési típusExample
multiply(Matrix4 other)Matrix4Mátrixszorzás; új mátrixot ad vissza
inverse()Matrix4Visszaadja az inverz mátrixot
transpose()Matrix4Visszaadja a transzponált mátrixot
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanÜres sablon: mindig visszaad false. A mátrix TRS komponensekre bontására szánt, de még nincs megvalósítva.
determinant()doubleVisszaadja a mátrix determinánsát
transformPoint(Vector3 point)Vector3Átalakít egy pontot (teljes eltolást + forgást + méretezést alkalmaz)
transformDirection(Vector3 direction)Vector3Átalakít egy irányvektort (forgást és méretezést alkalmaz, az eltolást figyelmen kívül hagyja)

Statikus metódusok

ExampleVisszatérési típusExample
Matrix4.translate(Vector3 t)Matrix4Létrehoz egy eltolási mátrixot
Matrix4.translate(double x, double y, double z)Matrix4Létrehoz egy eltolási mátrixot komponensekből
Matrix4.scale(Vector3 s)Matrix4Létrehoz egy méretezési mátrixot
Matrix4.scale(double x, double y, double z)Matrix4Létrehoz egy méretezési mátrixot komponensekből
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Létrehoz egy forgatási mátrixot egy kvaternióból

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

Lásd még

 Magyar