Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 on 4x4 kaksinkertaisen tarkkuuden matriisi, jota käytetään affiinimuunnoksissa 3D-tilassa. Se palautetaan. Transform.getTransformMatrix() ja GlobalTransform.getTransformMatrix(), ja voidaan rakentaa siirrosta, kierron ja skaalaamisen (TRS) hajotelmista.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Rakentaa identiteettimatriisin
Matrix4(double m00, double m01, ... double m33)Rakenteet 16:sta yksittäisestä elementistä (rivi‑painotteinen)

Staattiset kentät

ExampleExampleExample
IDENTITYMatrix44x4 identiteettimatriisi

Julkiset kentät (elementtien käyttö)

Matrix4 käyttää julkiset kentät elementtien hakemiseen: m00, m01, … m33 (yhteensä 16 kenttää, rivi-painotteinen asettelu).

KenttäkaavaExampleExample
m00m33doubleYksittäiset matriisin alkiot julkisina kenttinä. Pääsy muodossa mat.m00, mat.m01, jne.

Siirtokomponentit ovat viimeisessä sarakkeessa: m03 (X), m13 (Y), m23 (Z).

Example

ExamplePalautustyyppiExample
multiply(Matrix4 other)Matrix4Matriisitulo; palauttaa uuden matriisin
inverse()Matrix4Palauttaa käänteismatriisin
transpose()Matrix4Palauttaa transponoitu matriisi
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStub: palauttaa aina false. Tarkoitus on hajottaa matriisi TRS-komponentteihin, mutta ei vielä toteutettu.
determinant()doublePalauttaa matriisin determinantti
transformPoint(Vector3 point)Vector3Muuntaa pisteen (soveltaa täyttä siirtoa + kiertoa + skaalausta)
transformDirection(Vector3 direction)Vector3Muuntaa suuntavektorin (soveltaa kiertoa + skaalausta, ohittaa siirron)

Staattiset metodit

ExamplePalautustyyppiExample
Matrix4.translate(Vector3 t)Matrix4Luo siirtomatriisin
Matrix4.translate(double x, double y, double z)Matrix4Luo siirtomatriisin komponenteista
Matrix4.scale(Vector3 s)Matrix4Luo skaalausmatriisin
Matrix4.scale(double x, double y, double z)Matrix4Luo skaalausmatriisin komponenteista
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Luo kiertomatriisin kvaternionista

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

Katso myös

 Suomi