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 m00–m33 egenskaper, eller via indeks ved getItem(i) / setItem(i, v). Matrix4 eksporteres fra @aspose/3d/utilities understi.
export class Matrix4import { 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
| ImageRenderOptions | ImageRenderOptions |
|---|---|
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
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
Matrix4.identity | Matrix4 | Returnerer 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.
| ImageRenderOptions | ImageRenderOptions | ImageRenderOptions |
|---|---|---|
m00–m33 | number | Individuelle matriseelementer (rad-major layout). |
determinant | number (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): Matrix4ImageRenderOptions
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): Matrix4Matrix4.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): Matrix4ImageRenderOptions
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): Matrix4Instansmetoder
concatenate(m2)
Returnerer matriseproduktet this × m2. Bruk dette til å kombinere transformasjoner (bruk this først, så m2).
concatenate(m2: Matrix4): Matrix4ImageRenderOptions
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(): Matrix4transpose()
Returnerer transponeringen av denne matrisen (rader blir kolonner).
transpose(): Matrix4normalize()
Returnerer en ny matrise hvor rotasjonsdelen (øverst‑venstre 3×3) er ortonormalisert ved å dele hver rad med dens lengde. Translasjonskolonnen beholdes.
normalize(): Matrix4decompose(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[]): voidImageRenderOptions
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): voidtoArray()
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): voidequals(other)
ImageRenderOptions true hvis alle 16 elementene er strengt like.
equals(other: Matrix4): boolean