Matrix4

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

Matrix4 stochează o matrice de transformare 4×4 ca un tablou plat de 16 numere în ordine pe rânduri. Este tipul de Transform.transformMatrix și GlobalTransform.transformMatrix. Elementele individuale sunt accesibile ca m00m33 proprietăți, sau prin index prin getItem(i) / setItem(i, v). Matrix4 este exportat din @aspose/3d/utilities sub-calea.

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

ImageRenderOptions

Construiește o matrice TRS combinată și descompune‑o înapoi în componente.

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

NameTypeAccessDescription
m00numberRead/WriteGets the m00.
m01numberRead/WriteGets the m01.
m02numberRead/WriteGets the m02.
m03numberRead/WriteGets the m03.
m10numberRead/WriteGets the m10.
m11numberRead/WriteGets the m11.
m12numberRead/WriteGets the m12.
m13numberRead/WriteGets the m13.
m20numberRead/WriteGets the m20.
m21numberRead/WriteGets the m21.
m22numberRead/WriteGets the m22.
m23numberRead/WriteGets the m23.
m30numberRead/WriteGets the m30.
m31numberRead/WriteGets the m31.
m32numberRead/WriteGets the m32.
m33numberRead/WriteGets the m33.
determinantnumberReadGets the determinant.

Proprietăți statice

SignatureDescription
constructor()Creates a new 4x4 matrix, optionally from a 16‑element number array
constructor(matrix: number[])
constructor()
constructor()
getItem(key: number)numberReturns the matrix element at the given linear index
setItem(key: number, value: number)Sets the item value.
transpose()Matrix4Returns a new Matrix4 that is the transpose of this matrix
concatenate(m2: Matrix4)Matrix4
normalize()Matrix4Returns 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()Matrix4Resets the matrix to the identity matrix and returns this instance
translate(tx: number, ty: number, tz: number)Matrix4Applies 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)Matrix4Applies 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)Matrix4Creates a rotation matrix from an angle and axis or from a quaternion
rotate(q: Quaternion)Matrix4
rotate(angle: any, axis: any)Matrix4
toString()stringReturns a human‑readable string representation of the matrix values
equals(other: Matrix4)booleanCompares this matrix with another for element‑wise equality

ImageRenderOptions

Cele 16 elemente ale matricei sunt accesibile ca proprietăți individuale denumite m00, m01, m02, m03, m10, …, m33, unde prima cifră reprezintă rândul și a doua coloana. Toate sunt citibile și modificabile.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberElemente individuale ale matricei (dispunere pe rânduri).
determinantnumber (doar citire)Determinantul scalar al matricei.

Metode statice

Matrix4.translate(v)

Creează o matrice de translație pură dintr-un Vector3, sau din numere individuale (tx, ty, tz) numere.

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)

Creează o matrice de scalare pură dintr-un Vector3, sau din numere individuale (sx, sy, sz) numere.

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

Matrix4.rotate(q)

Creează o matrice de rotație dintr-un Quaternion, sau dintr-un unghi (în radiani) și o axă 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)

Creează o matrice de rotație din unghiuri Euler în radiani.

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

Metode de instanță

concatenate(m2)

Returnează produsul matricial this × m2. Folosiți acest lucru pentru a combina transformările (aplicați this mai întâi, apoi 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()

Returnează inversa acestei matrici. Aruncă o excepție dacă matricea este singulară (determinant aproape de zero).

inverse(): Matrix4

transpose()

Returnează transpunerea acestei matrici (rândurile devin coloane).

transpose(): Matrix4

normalize()

Returnează o matrice nouă cu sub-matricela de rotație (partea stânga-sus 3×3) ortonormalizată prin împărțirea fiecărui rând la lungimea sa. Coloana de translație este păstrată.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Descompune această matrice în componentele de translație, scalare și rotație. Rezultatele sunt scrise în primul element al fiecărui tablou de ieșire.

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

ImageRenderOptions

translation any[] — Vector de ieșire. După apel, translation[0] este un obiect {x, y, z} cu traducerea.

scaling any[] — Vector de ieșire. După apel, scaling[0] este un obiect {x, y, z} cu factorii de scară.

rotation any[] — Array de ieșire. După apel, rotation[0] este un obiect {w, x, y, z} cu componentele quaternionului de rotație.

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)

Setează această matrice la produsul unei translații, rotații și scalări. Intrările pot fi obiecte simple cu x, y, z (și w pentru rotație) câmpuri.

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

toArray()

Returnează o copie a tabloului intern de 16 elemente în ordine row-major.

toArray(): number[]

getItem(index) / setItem(index, value)

Acces la element prin index liniar (0–15, ordine pe rânduri).

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

equals(other)

ImageRenderOptions true dacă toate cele 16 elemente sunt strict egale.

equals(other: Matrix4): boolean
 Română