Matrix4

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

Matrix4 slaat een 4×4 transformatie‑matrix op als een platte array van 16 getallen in rij‑major volgorde. Het is het type van Transform.transformMatrix en GlobalTransform.transformMatrix. Individuele elementen zijn toegankelijk als m00m33 eigenschappen, of via index met getItem(i) / setItem(i, v). Matrix4 wordt geëxporteerd vanuit de @aspose/3d/utilities sub‑pad.

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

ImageRenderOptions

Bouw een gecombineerde TRS-matrix en decomposeer deze terug in componenten.

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.

Statische eigenschappen

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

De 16 matrixelementen zijn toegankelijk als individuele benoemde eigenschappen m00, m01, m02, m03, m10, …, m33, waarbij het eerste cijfer de rij is en het tweede de kolom. Alle zijn lees‑ en schrijfbaar.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberIndividuele matrixelementen (rij‑major indeling).
determinantnumber (alleen-lezen)De scalair determinant van de matrix.

Statische methoden

Matrix4.translate(v)

Maakt een zuivere translatiematrix van een Vector3, of van individuele (tx, ty, tz) cijfers.

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)

Maakt een pure schaalsmatrix van een Vector3, of van individuele (sx, sy, sz) cijfers.

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

Matrix4.rotate(q)

Maakt een rotatiematrix van een Quaternion, of van een hoek (in radialen) en een as 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)

Maakt een rotatiematrix aan vanuit Euler-hoeken in radialen.

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

Instantie‑methoden

concatenate(m2)

Retourneert het matrixproduct this × m2. Gebruik dit om transformaties te combineren (pas this eerst, dan 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()

Retourneert de inverse van deze matrix. Gooit een fout als de matrix singulier is (determinant bijna nul).

inverse(): Matrix4

transpose()

Retourneert de transponering van deze matrix (rijen worden kolommen).

transpose(): Matrix4

normalize()

Retourneert een nieuwe matrix waarbij de rotatie (linkerboven 3×3) submatrix geortho‑normaliseerd wordt door elke rij te delen door zijn lengte. De translatiekolom blijft behouden.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Decomposeert deze matrix in translatie-, schaal- en rotatiecomponenten. Resultaten worden geschreven naar het eerste element van elk uitvoerarray.

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

ImageRenderOptions

translation any[] — Uitvoerarray. Na de aanroep, translation[0] is een object {x, y, z} met de translatie.

scaling any[] — Uitvoerarray. Na de aanroep, scaling[0] is een object {x, y, z} met de schaalfactoren.

rotation any[] — Uitvoerarray. Na de aanroep, rotation[0] is een object {w, x, y, z} met de rotatiequaternioncomponenten.

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)

Stelt deze matrix in op het product van een translatie, rotatie en schaal. De invoer kan gewone objecten zijn met x, y, z (en w voor rotatie) velden.

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

toArray()

Retourneert een kopie van de interne 16‑elementen rij‑major array.

toArray(): number[]

getItem(index) / setItem(index, value)

Elementtoegang via lineaire index (0–15, rij-major volgorde).

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

equals(other)

ImageRenderOptions true als alle 16 elementen strikt gelijk zijn.

equals(other: Matrix4): boolean
 Nederlands