Matrix4
Paket: @aspose/3d (v24.12.0)
Matrix4 menyimpan matriks transformasi 4×4 sebagai array datar berisi 16 angka dalam urutan baris utama. Ini adalah tipe dari Transform.transformMatrix dan GlobalTransform.transformMatrix. Elemen individual dapat diakses sebagai m00–m33 properti, atau melalui indeks via getItem(i) / setItem(i, v). Matrix4 dieksport dari @aspose/3d/utilities sub-jalur.
export class Matrix4import { Matrix4 } from '@aspose/3d/utilities';ImageRenderOptions
Bangun matriks TRS gabungan dan dekomposisi kembali menjadi komponen‑komponennya.
import { Matrix4, Vector3, Quaternion } from '@aspose/3d/utilities';
const t = Matrix4.translate(new Vector3(5, 0, 0));
const r = Matrix4.rotate(Quaternion.fromEulerAngle(0, Math.PI / 4, 0));
const s = Matrix4.scale(new Vector3(2, 2, 2));
const trs = t.concatenate(r).concatenate(s);
const translation: any[] = [null];
const scaling: any[] = [null];
const rotation: any[] = [null];
trs.decompose(translation, scaling, rotation);
console.log(`Translation X: ${translation[0].x}`); // Translation X: 5
console.log(`Scale X: ${scaling[0].x.toFixed(4)}`); // Scale X: 2.0000
ImageRenderOptions
| Name | Type | Access | Description |
|---|---|---|---|
m00 | number | Read/Write | Gets the m00. |
m01 | number | Read/Write | Gets the m01. |
m02 | number | Read/Write | Gets the m02. |
m03 | number | Read/Write | Gets the m03. |
m10 | number | Read/Write | Gets the m10. |
m11 | number | Read/Write | Gets the m11. |
m12 | number | Read/Write | Gets the m12. |
m13 | number | Read/Write | Gets the m13. |
m20 | number | Read/Write | Gets the m20. |
m21 | number | Read/Write | Gets the m21. |
m22 | number | Read/Write | Gets the m22. |
m23 | number | Read/Write | Gets the m23. |
m30 | number | Read/Write | Gets the m30. |
m31 | number | Read/Write | Gets the m31. |
m32 | number | Read/Write | Gets the m32. |
m33 | number | Read/Write | Gets the m33. |
determinant | number | Read | Gets the determinant. |
Properti Statis
| Signature | Description |
|---|---|
constructor() | Creates a new 4x4 matrix, optionally from a 16‑element number array |
constructor(matrix: number[]) | |
constructor() | |
constructor() | |
getItem(key: number) → number | Returns the matrix element at the given linear index |
setItem(key: number, value: number) | Sets the item value. |
transpose() → Matrix4 | Returns a new Matrix4 that is the transpose of this matrix |
concatenate(m2: Matrix4) → Matrix4 | |
normalize() → Matrix4 | Returns a new Matrix4 with uniform scaling removed (unit length axes) |
inverse() → Matrix4 | |
decompose(translation: any[], scaling: any[], rotation: any[]) | Extracts translation, scaling, and rotation into the supplied arrays |
setTRS(translation: any, rotation: any, scale: any) | Sets the trs value. |
toArray() → number[] | Returns the matrix elements as a 16‑length number array in row‑major order |
identity() → Matrix4 | Resets the matrix to the identity matrix and returns this instance |
translate(tx: number, ty: number, tz: number) → Matrix4 | Applies a translation by (tx,ty,tz) or a vector and returns this matrix |
translate(v: any) → Matrix4 | |
translate(tx: any, ty: any, tz: any) → Matrix4 | |
scale(sx: number, sy: number, sz: number) → Matrix4 | Applies scaling by (sx,sy,sz) or a vector and returns this matrix |
scale(v: any) → Matrix4 | |
scale(sx: any, sy: any, sz: any) → Matrix4 | |
rotateFromEuler(rx: number, ry: number, rz: number) → Matrix4 | |
rotateFromEuler(v: any) → Matrix4 | |
rotateFromEuler(rx: any, ry: any, rz: any) → Matrix4 | |
rotate(angle: number, axis: any) → Matrix4 | Creates a rotation matrix from an angle and axis or from a quaternion |
rotate(q: Quaternion) → Matrix4 | |
rotate(angle: any, axis: any) → Matrix4 | |
toString() → string | Returns a human‑readable string representation of the matrix values |
equals(other: Matrix4) → boolean | Compares this matrix with another for element‑wise equality |
ImageRenderOptions
16 elemen matriks dapat diakses sebagai properti bernama individual m00, m01, m02, m03, m10, …, m33, di mana digit pertama adalah baris dan digit kedua adalah kolom. Semua dapat dibaca dan ditulis.
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
m00–m33 | number | Elemen matriks individual (tata letak baris utama). |
determinant | number (hanya-baca) | Determinan skalar dari matriks. |
Metode Statis
Matrix4.translate(v)
Membuat matriks translasi murni dari sebuah Vector3, atau dari individu (tx, ty, tz) angka.
static translate(v: Vector3): Matrix4
static translate(tx: number, ty?: number, tz?: number): Matrix4ImageRenderOptions
import { Matrix4, Vector3 } from '@aspose/3d/utilities';
const m = Matrix4.translate(new Vector3(3, 0, 0));
console.log(`m03: ${m.m03}`); // m03: 3
Matrix4.scale(v)
Membuat matriks skala murni dari sebuah Vector3, atau dari individu (sx, sy, sz) angka.
static scale(v: Vector3): Matrix4
static scale(sx: number, sy?: number, sz?: number): Matrix4Matrix4.rotate(q)
Membuat matriks rotasi dari sebuah Quaternion, atau dari sudut (dalam radian) dan sumbu Vector3.
static rotate(q: Quaternion): Matrix4
static rotate(angle: number, axis: Vector3): Matrix4ImageRenderOptions
import { Matrix4, Quaternion } from '@aspose/3d/utilities';
const q = Quaternion.fromEulerAngle(0, Math.PI / 2, 0);
const m = Matrix4.rotate(q);
console.log(`Rotation matrix m00: ${m.m00.toFixed(4)}`);
// Rotation matrix m00: 0.0000
Matrix4.rotateFromEuler(rx, ry, rz)
Membuat matriks rotasi dari sudut Euler dalam radian.
static rotateFromEuler(rx: number, ry?: number, rz?: number): Matrix4
static rotateFromEuler(v: Vector3): Matrix4Metode Instance
concatenate(m2)
Mengembalikan hasil perkalian matriks this × m2. Gunakan ini untuk menggabungkan transformasi (terapkan this pertama, lalu m2).
concatenate(m2: Matrix4): Matrix4ImageRenderOptions
import { Matrix4, Vector3 } from '@aspose/3d/utilities';
const translate = Matrix4.translate(new Vector3(1, 0, 0));
const scale = Matrix4.scale(new Vector3(2, 2, 2));
const combined = translate.concatenate(scale);
console.log(`m03: ${combined.m03}`); // m03: 1
inverse()
Mengembalikan invers dari matriks ini. Melempar jika matriks singular (determinan mendekati nol).
inverse(): Matrix4transpose()
Mengembalikan transpose dari matriks ini (baris menjadi kolom).
transpose(): Matrix4normalize()
Mengembalikan matriks baru dengan sub-matriks rotasi (3×3 kiri-atas) yang ortonormal dengan membagi setiap baris dengan panjangnya. Kolom translasi dipertahankan.
normalize(): Matrix4decompose(translation, scaling, rotation)
Mendecompose matriks ini menjadi komponen translasi, skala, dan rotasi. Hasil dituliskan ke elemen pertama masing-masing array output.
decompose(translation: any[], scaling: any[], rotation: any[]): voidImageRenderOptions
translation any[] — Array output. Setelah pemanggilan, translation[0] adalah sebuah objek {x, y, z} dengan translasi.
scaling any[] — Array output. Setelah pemanggilan, scaling[0] adalah sebuah objek {x, y, z} dengan faktor skala.
rotation any[] — Array output. Setelah pemanggilan, rotation[0] adalah sebuah objek {w, x, y, z} dengan komponen quaternion rotasi.
ImageRenderOptions
import { Matrix4, Vector3, Quaternion } from '@aspose/3d/utilities';
const m = Matrix4.translate(new Vector3(0, 5, 0));
const trans: any[] = [null], scale: any[] = [null], rot: any[] = [null];
m.decompose(trans, scale, rot);
console.log(`Y: ${trans[0].y}`); // Y: 5
setTRS(translation, rotation, scale)
Mengatur matriks ini menjadi hasil perkalian translasi, rotasi, dan skala. Input dapat berupa objek biasa dengan x, y, z (dan w untuk rotasi) bidang.
setTRS(translation: any, rotation: any, scale: any): voidtoArray()
Mengembalikan salinan dari array internal berukuran 16 elemen dengan urutan baris-major.
toArray(): number[]getItem(index) / setItem(index, value)
Akses elemen dengan indeks linier (0–15, row-major order).
getItem(key: number): number
setItem(key: number, value: number): voidequals(other)
ImageRenderOptions true jika semua 16 elemen sama persis.
equals(other: Matrix4): boolean