Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 är en 4x4 dubbelprecision-matris som används för affina transformationer i 3D-rymden. Den returneras av Transform.getTransformMatrix() och GlobalTransform.getTransformMatrix(), och kan konstrueras från translation, rotation, och scale (TRS) dekompositioner.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Skapar en identitetsmatris
Matrix4(double m00, double m01, ... double m33)Konstruktioner från 16 individuella element (radordning)

Statiska fält

ExampleExampleExample
IDENTITYMatrix4Den 4x4 identitetsmatrisen

Publika fält (elementåtkomst)

Matrix4 använder publika fält för elementåtkomst: m00, m01, … m33 (16 fält totalt, rad-major layout.).

FältmönsterExampleExample
m00m33doubleIndividuella matriselement som publika fält. Åtkomst som mat.m00, mat.m01, etc.

Översättningskomponenterna finns i den sista kolumnen: m03 (X), m13 (Y), m23 (Z).

Example

ExampleReturtypExample
multiply(Matrix4 other)Matrix4Matrixmultiplikation; returnerar en ny matris
inverse()Matrix4Returnerar den inversa matrisen
transpose()Matrix4Returnerar den transponerade matrisen
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStub: returnerar alltid false. Avsedd att dekomponera matrisen i TRS‑komponenter, men ännu inte implementerad.
determinant()doubleReturnerar determinanten för matrisen
transformPoint(Vector3 point)Vector3Transformerar en punkt (utför full förflyttning + rotation + skalning)
transformDirection(Vector3 direction)Vector3Transformerar en riktningsvektor (utför rotation + skalning, ignorerar förflyttning)

Statiska metoder

ExampleReturtypExample
Matrix4.translate(Vector3 t)Matrix4Skapar en förflyttningsmatris
Matrix4.translate(double x, double y, double z)Matrix4Skapar en förflyttningsmatris från komponenter
Matrix4.scale(Vector3 s)Matrix4Skapar en skalningsmatris
Matrix4.scale(double x, double y, double z)Matrix4Skapar en skalningsmatris från komponenter
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Skapar en rotationsmatris från en kvaternion

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

Se även

 Svenska