Matrix4

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

Matrix4 tallentaa 4×4-muunnosmatriisin tasaisena taulukkona, jossa on 16 numeroa rivijärjestyksessä. Se on tyyppiä Transform.transformMatrix ja GlobalTransform.transformMatrix. Yksittäiset elementit ovat käytettävissä m00m33 ominaisuuksina, tai indeksin kautta getItem(i) / setItem(i, v). Matrix4 viedään kohteesta @aspose/3d/utilities alipolku.

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

ImageRenderOptions

Rakenna yhdistetty TRS‑matriisi ja hajota se takaisin komponenteiksi.

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.

Staattiset ominaisuudet

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

16 matriisin elementtiin pääsee käsiksi yksittäisinä nimettyinä ominaisuuksina m00, m01, m02, m03, m10, …, m33, jossa ensimmäinen numero on rivi ja toinen sarake. Kaikki ovat luettavissa ja kirjoitettavissa.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberYksittäiset matriisin elementit (rivijärjestys).
determinantnumber (vain luku)Matriisin skalaarinen determinantti.

Staattiset metodit

Matrix4.translate(v)

Luo puhtaan siirtomatriisin jostakin Vector3, tai yksittäisistä (tx, ty, tz) numerot.

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)

Luo puhtaan skaalausmatriisin Vector3, tai yksittäisistä (sx, sy, sz) numeroista.

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

Matrix4.rotate(q)

Luo kiertomatriisin Quaternion, tai kulmasta (radiaaneina) ja akselista 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)

Luo kiertomatriisin Euler‑kulmista radiaaneina.

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

Instanssimetodit

concatenate(m2)

Palauttaa matriisitulon this × m2. Käytä tätä yhdistämään muunnoksia (sovella this ensin, sitten 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()

Palauttaa tämän matriisin käänteismatriisin. Heittää poikkeuksen, jos matriisi on singulaarinen (determinantti lähellä nollaa).

inverse(): Matrix4

transpose()

Palauttaa tämän matriisin transpoosin (rivit muuttuvat sarakkeiksi).

transpose(): Matrix4

normalize()

Palauttaa uuden matriisin, jossa kierto (vasemmassa yläkulmassa oleva 3×3) alimatriisi on ortonormoitettu jakamalla jokainen rivi sen pituudella. Käännöspalkki säilytetään.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Hajottaa tämän matriisin käännös-, skaalaus- ja kiertokomponentteihin. Tulokset kirjoitetaan kunkin tulos-taulukon ensimmäiseen alkioon.

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

ImageRenderOptions

translation any[] — Tulostaulukko. Kutsun jälkeen, translation[0] on objekti {x, y, z} siirron kanssa.

scaling any[] — Tulostaulukko. Kutsun jälkeen, scaling[0] on objekti {x, y, z} skaalauskertoimien kanssa.

rotation any[] — Tulostaulukko. Kutsun jälkeen, rotation[0] on objekti {w, x, y, z} kierroksen kvaternionikomponenttien kanssa.

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)

Asettaa tämän matriisin käännöksen, kierron ja skaalaamisen tuloksi. Syötteet voivat olla tavallisia objekteja, joissa on x, y, z (ja w kierron) kentät.

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

toArray()

Palauttaa kopion sisäisestä 16‑elementtisestä rivi‑painotteisesta taulukosta.

toArray(): number[]

getItem(index) / setItem(index, value)

Alkion pääsy lineaarisella indeksillä (0–15, rivi‑painotteinen järjestys).

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

equals(other)

ImageRenderOptions true jos kaikki 16 elementtiä ovat täsmälleen samat.

equals(other: Matrix4): boolean
 Suomi