Matrix4

Methods

Matrix4 és una matriu de doble precisió de 4×4 emmagatzemada en ordre per files amb 16 elements (m00m33). S’utilitza per a càlculs de transformacions mundials/locals, projeccions personalitzades i per descompondre les transformacions dels nodes en translació, rotació i escala.

Methods: aspose.threed.utilities

from aspose.threed.utilities import Matrix4

Methods

MethodsMethods
Matrix4()matriu d’identitat
Matrix4(m00, m01, ..., m33)Constructor explícit de 16 elements (ordre per files)
Matrix4(values)Construccions d’una llista de 16 float valors

Propietats dels elements

Els elements es denominen mRC on R és la fila (0–3) i C és la columna (0–3). Per exemple, m03 és la fila 0, columna 3 (la translació X quan la matriu codifica una transformació). Totes les 16 propietats (m00 per m33) són llegibles i gravables.

La matriu també es pot accedir per índex pla: mat[0]mat[15].

Propietats calculades

MethodsMethodsMethods
determinantfloatDeterminant escalar de la matriu

Mètodes de fàbrica estàtics

MethodsTipus de retornMethods
Matrix4.get_identity()Matrix4Retorna una matriu d’identitat
Matrix4.translate(tx, ty, tz)Matrix4Matriu de translació; també accepta un Vector3 o un escalar únic per a una translació uniforme
Matrix4.scale(sx, sy, sz)Matrix4Matriu d’escala; també accepta un Vector3 o un escalar únic per a una escala uniforme
Matrix4.rotate(angle, axis)Matrix4Matriu de rotació a partir d’angle (radians) i Vector3 eix; també accepta un Quaternion com a únic argument
Matrix4.rotate_from_euler(rx, ry, rz)Matrix4Matriu de rotació a partir d’angles d’Euler (radians); també accepta un Vector3

Mètodes d’instància

MethodsTipus de retornMethods
concatenate(m2)Matrix4Retorna el producte de matrius self × m2
normalize()Matrix4Retorna una còpia amb els eixos de rotació re-ortogonalitzats (escalat eliminat de les columnes de rotació)
transpose()Matrix4Retorna la matriu transposada
inverse()Matrix4Retorna l’invers; llança ValueError si la matriu és singular
decompose(translation, scaling, rotation)NoneDescompon en components TRS. Els resultats s’escriuen en llistes d’un sol element: translation[0]Vector3, scaling[0]Vector3, rotation[0]Quaternion
set_trs(translation, rotation, scale)NoneEstableix la matriu in situ a partir de la traslació Vector3, rotació Quaternion o Vector3 (Euler), i escala Vector3
to_array()list[float]Retorna els 16 elements com una llista plana.

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

Vegeu també

 Català