Matrix4

Methods

Matrix4 yra 4×4 dvigubo tikslumo matricos, saugomos eilutės tvarka, turinčios 16 elementų (m00m33). Ji naudojama pasaulio / vietinių transformacijų skaičiavimams, pasirinktiniams projekcijoms ir mazgo transformacijų skaidymui į poslinkį, sukimą ir mastelį.

Methods: aspose.threed.utilities

from aspose.threed.utilities import Matrix4

Methods

MethodsMethods
Matrix4()Identiteto matrica
Matrix4(m00, m01, ..., m33)Aiškus 16 elementų konstruktorius (eilutės tvarka)
Matrix4(values)Kuria iš 16 elementų sąrašo float reikšmės

Elementų savybės

Elementai vadinami mRC kur R yra eilutė (0–3) ir C yra stulpelis (0–3). Pavyzdžiui, m03 yra 0 eilutė, 3 stulpelis (X poslinkis, kai matrica koduoja transformaciją). Visos 16 savybės (m00 iki m33).

Matrica taip pat gali būti pasiekiama naudojant plokščią indeksą: mat[0]mat[15].

Apskaičiuotos savybės

MethodsMethodsMethods
determinantfloatMatricos skalaraus determinanto

Statiniai gamykliniai metodai

MethodsGrąžinimo tipasMethods
Matrix4.get_identity()Matrix4Grąžina vienetinę matricą
Matrix4.translate(tx, ty, tz)Matrix4Poslinkio matrica; taip pat priima Vector3 arba vieną skaliarą vienodam poslinkiui
Matrix4.scale(sx, sy, sz)Matrix4Mastelio matrica; taip pat priima Vector3 arba vienas skaliaras vienodam mastui
Matrix4.rotate(angle, axis)Matrix4Sukimo matrica iš kampo (radianų) ir Vector3 ašis; taip pat priima Quaternion kaip vienintelį argumentą
Matrix4.rotate_from_euler(rx, ry, rz)Matrix4Sukimo matrica iš Eulerio kampų (radianų); taip pat priima Vector3

Instanciniai metodai

MethodsGrąžinimo tipasMethods
concatenate(m2)Matrix4Grąžina matricos sandaugą self × m2
normalize()Matrix4Grąžina kopiją, kurioje sukimo ašys perortogonalizuotos (mastelis pašalintas iš sukimo stulpelių)
transpose()Matrix4Grąžina transponuotą matricą
inverse()Matrix4Grąžina inversą; kelia ValueError jei matrica yra singuliari
decompose(translation, scaling, rotation)NoneIšskaido į TRS komponentus. Rezultatai įrašomi į vieno elemento sąrašus: translation[0]Vector3, scaling[0]Vector3, rotation[0]Quaternion
set_trs(translation, rotation, scale)NoneNustato matricą vietoje pagal perkėlimą Vector3, sukimas Quaternion arba Vector3 (Euler), ir mastelis Vector3
to_array()list[float]Grąžina 16 elementų kaip plokščią sąrašą

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

Žr. taip pat

 Lietuvių