Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 je 4x4 dvostruko‑precizna matrica koja se koristi za afine transformacije u 3D prostoru. Vraća se od Transform.getTransformMatrix() i GlobalTransform.getTransformMatrix(), i može se konstruisati iz translacije, rotacije i skaliranja (TRS) dekompozicija.

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Kreira jediničnu matricu
Matrix4(double m00, double m01, ... double m33)Kreira iz 16 pojedinačnih elemenata (row-major)

Статичка поља

ExampleExampleExample
IDENTITYMatrix44x4 jedinična matrica

Јавна поља (приступ елементима)

Matrix4 koristi javna polja za pristup elementima: m00, m01, … m33 (ukupno 16 polja, raspored po redovima).

Obrazac poljaExampleExample
m00m33doublePojedinačni elementi matrice kao javna polja. Pristupajte kao mat.m00, mat.m01, itd.

Komponente translacije su u poslednjoj koloni: m03 (X), m13 (Y), m23 (Z).

Example

ExampleTip povratne vrednostiExample
multiply(Matrix4 other)Matrix4Množenje matrica; vraća novu matricu
inverse()Matrix4Vraća inverznu matricu
transpose()Matrix4Vraća transponovanu matricu
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanŠablon: uvek vraća false. Predviđeno je da dekomponuje matricu na TRS komponente, ali još nije implementirano.
determinant()doubleVraća determinantu matrice
transformPoint(Vector3 point)Vector3Transformiše tačku (primenjuje punu translaciju + rotaciju + skaliranje)
transformDirection(Vector3 direction)Vector3Transformiše vektor pravca (primenjuje rotaciju + skaliranje, ignoriše translaciju)

Статичке методе

ExampleTip povratkaExample
Matrix4.translate(Vector3 t)Matrix4Kreira matricu translacije
Matrix4.translate(double x, double y, double z)Matrix4Kreira matricu translacije iz komponenti
Matrix4.scale(Vector3 s)Matrix4Kreira matricu skaliranja
Matrix4.scale(double x, double y, double z)Matrix4Kreira matricu skaliranja iz komponenti
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Kreira matricu rotacije iz kvaterniona

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

Vidi takođe

 Српски