Matrix4 — Aspose.3D FOSS for Java

Example

Matrix4 είναι ένας 4x4 πίνακας διπλής ακρίβειας που χρησιμοποιείται για αφινικούς μετασχηματισμούς σε τρισδιάστατο χώρο. Επιστρέφεται από Transform.getTransformMatrix() και GlobalTransform.getTransformMatrix(), και μπορεί να κατασκευαστεί από αποσυνθέσεις μετάφρασης, περιστροφής και κλίμακας (TRS).

Example: com.aspose.threed

import com.aspose.threed.*;

Example

ExampleExample
Matrix4()Δημιουργεί έναν μοναδιαίο πίνακα
Matrix4(double m00, double m01, ... double m33)Δημιουργεί από 16 μεμονωμένα στοιχεία (με σειρά γραμμών)

Στατικά Πεδία

ExampleExampleExample
IDENTITYMatrix4Ο 4x4 μοναδιαίος πίνακας

Δημόσια Πεδία (Πρόσβαση Στοιχείου)

Matrix4 χρησιμοποιεί δημόσια πεδία για πρόσβαση σε στοιχεία: m00, m01, … m33 (συνολικά 16 πεδία, διάταξη κατά σειρά γραμμής).

Μοτίβο πεδίουExampleExample
m00m33doubleΑτομικά στοιχεία του πίνακα ως δημόσια πεδία. Πρόσβαση ως mat.m00, mat.m01, κλπ.

Τα στοιχεία μετάφρασης βρίσκονται στην τελευταία στήλη: m03 (X), m13 (Y), m23 (Z).

Example

ExampleΤύπος ΕπιστροφήςExample
multiply(Matrix4 other)Matrix4Πολλαπλασιασμός πινάκων· επιστρέφει έναν νέο πίνακα
inverse()Matrix4Επιστρέφει τον αντίστροφο πίνακα
transpose()Matrix4Επιστρέφει τον μετασχηματισμένο πίνακα
decompose(Vector3 translation, Vector3 scaling, Quaternion rotation)booleanStub: επιστρέφει πάντα false. Προοριζόμενο να αποσυνθέσει τον πίνακα σε συνιστώσες TRS, αλλά δεν έχει ακόμη υλοποιηθεί.
determinant()doubleΕπιστρέφει την ορίζουσα του πίνακα
transformPoint(Vector3 point)Vector3Μετασχηματίζει ένα σημείο (εφαρμόζει πλήρη μετάθεση + περιστροφή + κλίμακα)
transformDirection(Vector3 direction)Vector3Μετασχηματίζει ένα διάνυσμα κατεύθυνσης (εφαρμόζει περιστροφή + κλίμακα, αγνοεί τη μετάθεση)

Στατικές Μέθοδοι

ExampleΤύπος ΕπιστροφήςExample
Matrix4.translate(Vector3 t)Matrix4Δημιουργεί έναν πίνακα μετάθεσης
Matrix4.translate(double x, double y, double z)Matrix4Δημιουργεί έναν πίνακα μετάθεσης από συνιστώσες
Matrix4.scale(Vector3 s)Matrix4Δημιουργεί έναν πίνακα κλίμακας
Matrix4.scale(double x, double y, double z)Matrix4Δημιουργεί έναν πίνακα κλίμακας από τα συστατικά
Matrix4.rotateFromQuaternion(Quaternion q)Matrix4Δημιουργεί έναν πίνακα περιστροφής από ένα 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);

Δείτε επίσης

 Ελληνικά