Matrix4

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

Matrix4 glabā 4×4 transformācijas matricu kā plakanu masīvu ar 16 skaitļiem rindas secībā. Tas ir tipa Transform.transformMatrix un GlobalTransform.transformMatrix. Atsevišķi elementi ir pieejami kā m00m33 īpašības, vai arī pēc indeksa, izmantojot getItem(i) / setItem(i, v). Matrix4 tiek eksportēts no @aspose/3d/utilities apakšceļš.

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

ImageRenderOptions

Izveidojiet kombinētu TRS matricu un dekomponējiet to atpakaļ komponentēs.

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.

Statiskās īpašības

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 matricu elementi ir pieejami kā atsevišķas nosauktas īpašības m00, m01, m02, m03, m10, …, m33, kur pirmais cipars ir rinda, bet otrais – kolonna. Visi ir lasāmi un rakstāmi.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberAtsevišķi matricu elementi (rindas secība).
determinantnumber (tikai lasāms)Matricas skalārā determinanta vērtība.

Statiskās metodes

Matrix4.translate(v)

Izveido tīru pārvietošanas matricu no a Vector3, vai no atsevišķiem (tx, ty, tz) skaitļi.

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)

Izveido tīru mērogošanas matricu no Vector3, vai no atsevišķiem (sx, sy, sz) skaitļiem.

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

Matrix4.rotate(q)

Izveido rotācijas matricu no Quaternion, vai no leņķa (radiānos) un ass 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)

Izveido rotācijas matricu no Eilera leņķiem radiānos.

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

Instance metodes

concatenate(m2)

Atgriež matricas reizinājumu this × m2. Izmantojiet to, lai apvienotu transformācijas (pielietojot this vispirms, tad 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()

Atgriež šīs matricas inverso. Izsauc kļūdu, ja matrica ir singulāra (determinants tuvu nullei).

inverse(): Matrix4

transpose()

Atgriež šīs matricas transponētu (rindas kļūst par kolonnām).

transpose(): Matrix4

normalize()

Atgriež jaunu matricu, kur rotācijas (augšējā kreisā 3×3) apakšmatrica ir ortonormēta, katru rindu dalot ar tās garumu. Pārvietošanas kolonna tiek saglabāta.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Sadalot šo matricu translācijas, mērogošanas un rotācijas komponentēs. Rezultāti tiek ierakstīti katras izvades masīva pirmajā elementā.

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

ImageRenderOptions

translation any[] — Izvades masīvs. Pēc izsaukuma, translation[0] ir objekts {x, y, z} ar pārvietojumu.

scaling any[] — Izvades masīvs. Pēc izsaukuma, scaling[0] ir objekts {x, y, z} ar mēroga koeficientiem.

rotation any[] — Izvades masīvs. Pēc izsaukuma, rotation[0] ir objekts {w, x, y, z} ar rotācijas kvaterniona komponentēm.

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)

Iestata šo matricu kā pārvietošanas, rotācijas un mēroga reizinājumu. Ievades var būt vienkārši objekti ar x, y, z (un w rotācijai) lauki.

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

toArray()

Atgriež iekšējā 16 elementu rindas secības masīva kopiju.

toArray(): number[]

getItem(index) / setItem(index, value)

Elementa piekļuve lineāram indeksam (0–15, rindas galvenā kārtība).

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

equals(other)

ImageRenderOptions true ja visi 16 elementi ir stingri vienādi.

equals(other: Matrix4): boolean
 Latviešu