Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 er en 4x4 double-precision matrix, der bruges til affinske transformationer i 3D-rum. Den returneres af Transform.getTransformMatrix() og GlobalTransform.getTransformMatrix(), og kan konstrueres ud fra translation, rotation og skalering (TRS) dekompositioner.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Konstruerer en identitetsmatrix
Matrix4(double m00, double m01, ... double m33)Konstruerer ud fra 16 individuelle elementer (row-major)

Statiske felter

ExampleExampleExample
IDENTITYMatrix4Den 4x4 identitetsmatrix

Offentlige felter (Elementadgang)

Matrix4 bruger offentlige felter til elementadgang: m00, m01, … m33 (16 felter i alt, row-major layout).

FeltmønsterExampleExample
m00m33doubleIndividuelle matrixelementer som offentlige felter. Adgang som mat.m00, mat.m01, osv.

Translationskomponenterne er i den sidste kolonne: m03 (X), m13 (Y), m23 (Z).

Example

ExampleReturtypeExample
multiply(Matrix4 other)Matrix4Matrixmultiplikation; returnerer en ny matrix
inverse()Matrix4Returnerer den inverse matrix
transpose()Matrix4Returnerer den transponerede matrix
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStub: returnerer altid false. Intenderet at dekomponere matrixen i TRS-komponenter, men er endnu ikke implementeret.
determinant()doubleReturnerer determinanten af matrixen
transformPoint(Vector3 point)Vector3Transformerer et punkt (anvender fuld translation + rotation + scale)
transformDirection(Vector3 direction)Vector3Transformerer en retningsvektor (anvender rotation + scale, ignorerer translation)

Statiske metoder

ExampleReturtypeExample
Matrix4.translate(Vector3 t)Matrix4Opretter en translation-matrix
Matrix4.translate(double x, double y, double z)Matrix4Opretter en translation-matrix fra komponenter
Matrix4.scale(Vector3 s)Matrix4Opretter en scale-matrix
Matrix4.scale(double x, double y, double z)Matrix4Opretter en scale-matrix fra komponenter
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Opretter en rotation-matrix fra en 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);

Se også

 Dansk