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
| Name | Type | Access | Description |
|---|---|---|---|
m00 | number | Read/Write | Gets the m00. |
m01 | number | Read/Write | Gets the m01. |
m02 | number | Read/Write | Gets the m02. |
m03 | number | Read/Write | Gets the m03. |
m10 | number | Read/Write | Gets the m10. |
m11 | number | Read/Write | Gets the m11. |
m12 | number | Read/Write | Gets the m12. |
m13 | number | Read/Write | Gets the m13. |
m20 | number | Read/Write | Gets the m20. |
m21 | number | Read/Write | Gets the m21. |
m22 | number | Read/Write | Gets the m22. |
m23 | number | Read/Write | Gets the m23. |
m30 | number | Read/Write | Gets the m30. |
m31 | number | Read/Write | Gets the m31. |
m32 | number | Read/Write | Gets the m32. |
m33 | number | Read/Write | Gets the m33. |
determinant | number | Read | Gets the determinant. |
Statlige egenskaper
| Signature | Description |
|---|---|
constructor() | Creates a new 4x4 matrix, optionally from a 16‑element number array |
constructor(matrix: number[]) | |
constructor() | |
constructor() | |
getItem(key: number) → number | Returns the matrix element at the given linear index |
setItem(key: number, value: number) | Sets the item value. |
transpose() → Matrix4 | Returns a new Matrix4 that is the transpose of this matrix |
concatenate(m2: Matrix4) → Matrix4 | |
normalize() → Matrix4 | Returns 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() → Matrix4 | Resets the matrix to the identity matrix and returns this instance |
translate(tx: number, ty: number, tz: number) → Matrix4 | Applies 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) → Matrix4 | Applies 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) → Matrix4 | Creates a rotation matrix from an angle and axis or from a quaternion |
rotate(q: Quaternion) → Matrix4 | |
rotate(angle: any, axis: any) → Matrix4 | |
toString() → string | Returns a human‑readable string representation of the matrix values |
equals(other: Matrix4) → boolean | Compares this matrix with another for element‑wise equality |
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