Class Matrix4

Pacchetto: @aspose/3d (v24.12.0)

Matrix4 memorizza una matrice di trasformazione 4×4 come un array piatto di 16 numeri in ordine row-major. È il tipo di Transform.transformMatrix e GlobalTransform.transformMatrix. Gli elementi individuali sono accessibili come m00m33 proprietà, o per indice tramite getItem(i) / setItem(i, v). Matrix4 viene esportato da @aspose/3d/utilities sotto-percorso.

export class Matrix4
import { Matrix4 } from '@aspose/3d/utilities';

ImageRenderOptions

Costruisci una matrice TRS combinata e decomponila nuovamente nei componenti.

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()Crea la matrice identità 4×4.
new Matrix4(matrix: number[])Crea una matrice da un array di 16 elementi in ordine row-major.
new Matrix4(...args: number[])Crea una matrice da 16 argomenti numerici individuali.

Proprietà statiche

ImageRenderOptionsImageRenderOptionsImageRenderOptions
Matrix4.identityMatrix4Restituisce una nuova matrice identità.

ImageRenderOptions

I 16 elementi della matrice sono accessibili come proprietà nominate individuali m00, m01, m02, m03, m10, …, m33, dove la prima cifra è la riga e la seconda è la colonna. Tutti sono leggibili e scrivibili.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberElementi individuali della matrice (layout row-major).
determinantnumber (sola lettura)Il determinante scalare della matrice.

Metodi statici

Matrix4.translate(v)

Crea una matrice di traslazione pura da un Vector3, o da singoli (tx, ty, tz) numeri.

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)

Crea una matrice di scala pura da un Vector3, o da singoli (sx, sy, sz) numeri.

static scale(v: Vector3): Matrix4
static scale(sx: number, sy?: number, sz?: number): Matrix4

Matrix4.rotate(q)

Crea una matrice di rotazione da un Quaternion, o da un angolo (in radianti) e un asse 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)

Crea una matrice di rotazione a partire da angoli di Eulero in radianti.

static rotateFromEuler(rx: number, ry?: number, rz?: number): Matrix4
static rotateFromEuler(v: Vector3): Matrix4

Metodi di istanza

concatenate(m2)

Restituisce il prodotto della matrice this × m2. Usa questo per combinare le trasformazioni (applica this prima, poi 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()

Restituisce l’inverso di questa matrice. Genera un’eccezione se la matrice è singolare (determinante vicino a zero).

inverse(): Matrix4

transpose()

Restituisce la trasposizione di questa matrice (le righe diventano colonne).

transpose(): Matrix4

normalize()

Restituisce una nuova matrice con la sotto-matrice di rotazione (3×3 in alto a sinistra) ortonormalizzata dividendo ogni riga per la sua lunghezza. La colonna di traslazione viene preservata.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Decompone questa matrice nei componenti di traslazione, scala e rotazione. I risultati vengono scritti nel primo elemento di ciascun array di output.

decompose(translation: any[], scaling: any[], rotation: any[]): void

ImageRenderOptions

translation any[] — Array di output. Dopo la chiamata, translation[0] è un oggetto {x, y, z} con la traslazione.

scaling any[] — Array di output. Dopo la chiamata, scaling[0] è un oggetto {x, y, z} con i fattori di scala.

rotation any[] — Array di output. Dopo la chiamata, rotation[0] è un oggetto {w, x, y, z} con i componenti del quaternione di rotazione.

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)

Imposta questa matrice al prodotto di una traslazione, rotazione e scala. Gli input possono essere oggetti semplici con x, y, z (e w per la rotazione) campi.

setTRS(translation: any, rotation: any, scale: any): void

toArray()

Restituisce una copia dell’array interno a 16 elementi in ordine row-major.

toArray(): number[]

getItem(index) / setItem(index, value)

Accesso agli elementi tramite indice lineare (0–15, ordine row-major).

getItem(key: number): number
setItem(key: number, value: number): void

equals(other)

ImageRenderOptions true se tutti i 16 elementi sono strettamente uguali.

equals(other: Matrix4): boolean
 Italiano