Matrix4

Methods

Matrix4 یک ماتریس ۴×۴ با دقت دوگانه است که به صورت ردیف‑اصلی ذخیره شده و شامل ۱۶ عنصر است (m00m33). برای محاسبات تبدیل‌های جهانی/محلی، پروژکشن‌های سفارشی، و تجزیه تبدیل‌های گره به ترجمه، چرخش و مقیاس استفاده می‌شود.

Methods: aspose.threed.utilities

from aspose.threed.utilities import Matrix4

Methods

MethodsMethods
Matrix4()ماتریس همانی
Matrix4(m00, m01, ..., m33)سازنده صریح ۱۶ عنصری (ترتیب سطر‑ستون)
Matrix4(values)ساختارها از فهرست ۱۶ 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 یا یک اسکالر تک برای ترجمه یکنواخت
Matrix4.scale(sx, sy, sz)Matrix4ماتریس مقیاس؛ همچنین یک Vector3 یا یک اسکالر تک برای مقیاس یکنواخت
Matrix4.rotate(angle, axis)Matrix4ماتریس چرخش از زاویه (رادیان) و Vector3 محور؛ همچنین یک را می‌پذیرد Quaternion به عنوان تنها آرگومان
Matrix4.rotate_from_euler(rx, ry, rz)Matrix4ماتریس چرخش از زاویه‌های اویلر (رادیان)؛ همچنین یک را می‌پذیرد 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

موارد مرتبط

 فارسی