Class Matrix4

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

Matrix4 lagrer en 4×4 transformasjonsmatrise som en flat array med 16 tall i rad-major rekkefølge. Det er typen av Transform.transformMatrix og GlobalTransform.transformMatrix. Individuelle elementer er tilgjengelige som m00m33 egenskaper, eller via indeks ved getItem(i) / setItem(i, v). Matrix4 eksporteres fra @aspose/3d/utilities understi.

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

ImageRenderOptions

Bygg en kombinert TRS-matrise og dekomponer den tilbake til komponenter.

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()Oppretter 4×4 identitetsmatrisen.
new Matrix4(matrix: number[])Oppretter en matrise fra en 16-element array i rad-major rekkefølge.
new Matrix4(...args: number[])Oppretter en matrise fra 16 individuelle tallargumenter.

Statlige egenskaper

ImageRenderOptionsImageRenderOptionsImageRenderOptions
Matrix4.identityMatrix4Returnerer en ny identitetsmatrise.

ImageRenderOptions

De 16 matriseelementene er tilgjengelige som individuelle navngitte egenskaper m00, m01, m02, m03, m10, …, m33, hvor det første sifferet er raden og det andre er kolonnen. Alle er lesbare og skrivbare.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberIndividuelle matriseelementer (rad-major layout).
determinantnumber (kun lesing)Den skalar-determinanten til matrisen.

Statiske metoder

Matrix4.translate(v)

Oppretter en ren translasjonsmatrise fra en Vector3, eller fra individuelle (tx, ty, tz) tall.

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)

Oppretter en ren skaleringsmatrise fra en Vector3, eller fra individuelle (sx, sy, sz) tall.

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

Matrix4.rotate(q)

Oppretter en rotasjonsmatrise fra en Quaternion, eller fra en vinkel (i radianer) og en akse 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)

Oppretter en rotasjonsmatrise fra Euler‑vinkler i radianer.

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

Instansmetoder

concatenate(m2)

Returnerer matriseproduktet this × m2. Bruk dette til å kombinere transformasjoner (bruk this først, så 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()

Returnerer inversen av denne matrisen. Kaster en feil hvis matrisen er singulær (determinanten nær null).

inverse(): Matrix4

transpose()

Returnerer transponeringen av denne matrisen (rader blir kolonner).

transpose(): Matrix4

normalize()

Returnerer en ny matrise hvor rotasjonsdelen (øverst‑venstre 3×3) er ortonormalisert ved å dele hver rad med dens lengde. Translasjonskolonnen beholdes.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Dekomponerer denne matrisen i translasjons-, skalerings- og rotasjonskomponenter. Resultatene skrives inn i det første elementet i hver utdata‑array.

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

ImageRenderOptions

translation any[] — Utdataarray. Etter kall, translation[0] er et objekt {x, y, z} med translasjonen.

scaling any[] — Utdataarray. Etter kall, scaling[0] er et objekt {x, y, z} med skaleringsfaktorene.

rotation any[] — Utdataarray. Etter kall, rotation[0] er et objekt {w, x, y, z} med rotasjonskvaternionens komponenter.

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)

Setter denne matrisen til produktet av en translasjon, rotasjon og skalering. Inputene kan være enkle objekter med x, y, z (og w for rotasjon) felter.

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

toArray()

Returnerer en kopi av den interne 16‑elementers rad‑major‑arrayen.

toArray(): number[]

getItem(index) / setItem(index, value)

Elementtilgang via lineær indeks (0–15, rad-major rekkefølge).

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

equals(other)

ImageRenderOptions true hvis alle 16 elementene er strengt like.

equals(other: Matrix4): boolean
 Norsk