Matrix4

Methods

Matrix4 είναι ένας 4×4 πίνακας διπλής ακρίβειας αποθηκευμένος σε διάταξη κατά σειρά γραμμών με 16 στοιχεία (m00m33). Χρησιμοποιείται για υπολογισμούς μετασχηματισμών κόσμου/τοπικού, προσαρμοσμένες προβολές και αποσύνθεση των μετασχηματισμών κόμβου σε μετάφραση, περιστροφή και κλίμακα.

Methods: aspose.threed.utilities

from aspose.threed.utilities import Matrix4

Methods

MethodsMethods
Matrix4()Μήτρα ταυτότητας
Matrix4(m00, m01, ..., m33)Συγκεκριμένος κατασκευαστής 16 στοιχείων (διάταξη κατά γραμμές)
Matrix4(values)Κατασκευές από λίστα των 16 float τιμές

Ιδιότητες Στοιχείων

Τα στοιχεία ονομάζονται mRC πού R είναι η σειρά (0–3) και C είναι η στήλη (0–3). Για παράδειγμα, m03 είναι η γραμμή 0, στήλη 3 (η μετάφραση X όταν ο πίνακας κωδικοποιεί μια μετασχηματισμό). Όλες οι 16 ιδιότητες (m00 μέσω m33) είναι αναγνώσιμα και εγγράψιμα.

Ο πίνακας μπορεί επίσης να προσπελαστεί με επίπεδο δείκτη: mat[0]mat[15].

Υπολογιζόμενες Ιδιότητες

MethodsMethodsMethods
determinantfloatΣυμβατική ορίζουσα του πίνακα

Στατικές μέθοδοι κατασκευής

MethodsΤύπος ΕπιστροφήςMethods
Matrix4.get_identity()Matrix4Επιστρέφει έναν μοναδιαίο πίνακα
Matrix4.translate(tx, ty, tz)Matrix4Πίνακας μετάφρασης; δέχεται επίσης ένα Vector3 ή ένα μοναδικό scalar για ομοιόμορφη μετάφραση
Matrix4.scale(sx, sy, sz)Matrix4Πίνακας κλίμακας; δέχεται επίσης ένα Vector3 ή ένα μοναδικό βαθμωτό για ομοιόμορφη κλίμακα
Matrix4.rotate(angle, axis)Matrix4Μήτρα περιστροφής από γωνία (ακτίνια) και Vector3 άξονα· δέχεται επίσης ένα Quaternion ως το μοναδικό όρισμα
Matrix4.rotate_from_euler(rx, ry, rz)Matrix4Μήτρα περιστροφής από γωνίες Euler (ακτίνια)· δέχεται επίσης ένα Vector3

Μέθοδοι αντικειμένου

MethodsΤύπος ΕπιστροφήςMethods
concatenate(m2)Matrix4Επιστρέφει το γινόμενο της μήτρας self × m2
normalize()Matrix4Επιστρέφει ένα αντίγραφο με τους άξονες περιστροφής επαναορθονομερωμένους (η κλίμακα αφαιρείται από τις στήλες περιστροφής)
transpose()Matrix4Επιστρέφει τη μετατεθειμένη μήτρα
inverse()Matrix4Επιστρέφει το αντίστροφο· προκαλεί ValueError εάν η μήτρα είναι μοναδική
decompose(translation, scaling, rotation)NoneΑποσυνθέτει σε συνιστώσες TRS. Τα αποτελέσματα γράφονται σε λίστες μονού στοιχείου: translation[0]Vector3, scaling[0]Vector3, rotation[0]Quaternion
set_trs(translation, rotation, scale)NoneΟρίζει τη μήτρα επί τόπου από τη μετάφραση Vector3, περιστροφή Quaternion ή Vector3 (Euler), και κλίμακα Vector3
to_array()list[float]Επιστρέφει τα 16 στοιχεία ως επίπεδη λίστα

Methods

from aspose.threed.utilities import Matrix4, Vector3, Quaternion
import math

# Build a transform: translate (5, 0, 0), rotate 90 deg around Y, scale 2x
t = Matrix4.translate(5.0, 0.0, 0.0)
r = Matrix4.rotate(math.radians(90), Vector3(0, 1, 0))
s = Matrix4.scale(2.0, 2.0, 2.0)

# Combine: scale first, then rotate, then translate
combined = t.concatenate(r.concatenate(s))

# Decompose the result back into TRS
translation = [None]
scaling     = [None]
rotation    = [None]
combined.decompose(translation, scaling, rotation)

print(translation[0])   # Vector3(5.0, 0.0, 0.0)
print(scaling[0])       # Vector3(2.0, 2.0, 2.0)

# Retrieve from a node's global transform
from aspose.threed import Scene
scene = Scene()
node = scene.root_node.create_child_node("box")
node.transform.translation = Vector3(10.0, 0.0, 0.0)
world_mat = node.global_transform.transform_matrix
print(world_mat.m03)   # 10.0 — translation X

Δείτε επίσης

 Ελληνικά