Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 ist eine 4x4-Doppelpräzisionsmatrix, die für affine Transformationen im 3D-Raum verwendet wird. Sie wird zurückgegeben von Transform.getTransformMatrix() und GlobalTransform.getTransformMatrix(), und kann aus Übersetzungs-, Rotations- und Skalierungszerlegungen (TRS) konstruiert werden.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Erstellt eine Einheitsmatrix
Matrix4(double m00, double m01, ... double m33)Erstellt aus 16 einzelnen Elementen (zeilenweise)

Statische Felder

ExampleExampleExample
IDENTITYMatrix4Die 4x4-Einheitsmatrix

Öffentliche Felder (Elementzugriff)

Matrix4 verwendet öffentliche Felder für den Elementzugriff: m00, m01, … m33 (insgesamt 16 Felder, zeilenweise Anordnung).

FeldmusterExampleExample
m00m33doubleEinzelne Matrixelemente als öffentliche Felder. Zugriff wie mat.m00, mat.m01, usw.

Translationskomponenten befinden sich in der letzten Spalte: m03 (X), m13 (Y), m23 (Z).

Example

ExampleRückgabetypExample
multiply(Matrix4 other)Matrix4Matrixmultiplikation; gibt eine neue Matrix zurück
inverse()Matrix4Gibt die inverse Matrix zurück
transpose()Matrix4Gibt die transponierte Matrix zurück
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanPlatzhalter: gibt immer zurück false. Vorgesehen, die Matrix in TRS-Komponenten zu zerlegen, aber noch nicht implementiert.
determinant()doubleGibt die Determinante der Matrix zurück
transformPoint(Vector3 point)Vector3Transformiert einen Punkt (wendet vollständige translation + rotation + scale an)
transformDirection(Vector3 direction)Vector3Transformiert einen Richtungsvektor (wendet rotation + scale an, ignoriert translation)

Statische Methoden

ExampleRückgabetypExample
Matrix4.translate(Vector3 t)Matrix4Erstellt eine translation matrix
Matrix4.translate(double x, double y, double z)Matrix4Erstellt eine translation matrix aus Komponenten
Matrix4.scale(Vector3 s)Matrix4Erstellt eine scale matrix
Matrix4.scale(double x, double y, double z)Matrix4Erstellt eine scale matrix aus Komponenten
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Erstellt eine rotation matrix aus einem 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);

Siehe auch

 Deutsch