Class 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 m00m33 properti, atau melalui indeks via getItem(i) / setItem(i, v). Matrix4 dieksport dari @aspose/3d/utilities sub-jalur.

export class Matrix4
import { 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

ImageRenderOptionsImageRenderOptions
new Matrix4()Membuat matriks identitas 4×4.
new Matrix4(matrix: number[])Membuat matriks dari array 16-elemen dalam urutan baris utama.
new Matrix4(...args: number[])Membuat matriks dari 16 argumen angka individual.

Properti Statis

ImageRenderOptionsImageRenderOptionsImageRenderOptions
Matrix4.identityMatrix4Mengembalikan matriks identitas baru.

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.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberElemen matriks individual (tata letak baris utama).
determinantnumber (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): Matrix4

ImageRenderOptions

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): Matrix4

Matrix4.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): Matrix4

ImageRenderOptions

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): Matrix4

Metode Instance

concatenate(m2)

Mengembalikan hasil perkalian matriks this × m2. Gunakan ini untuk menggabungkan transformasi (terapkan this pertama, lalu m2).

concatenate(m2: Matrix4): Matrix4

ImageRenderOptions

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(): Matrix4

transpose()

Mengembalikan transpose dari matriks ini (baris menjadi kolom).

transpose(): Matrix4

normalize()

Mengembalikan matriks baru dengan sub-matriks rotasi (3×3 kiri-atas) yang ortonormal dengan membagi setiap baris dengan panjangnya. Kolom translasi dipertahankan.

normalize(): Matrix4

decompose(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[]): void

ImageRenderOptions

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): void

toArray()

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): void

equals(other)

ImageRenderOptions true jika semua 16 elemen sama persis.

equals(other: Matrix4): boolean
 Bahasa Indonesia