Class Matrix4

Πακέτο: @aspose/3d (v24.12.0)

Matrix4 αποθηκεύει έναν 4×4 πίνακα μετασχηματισμού ως μια επίπεδη σειρά 16 αριθμών με διάταξη row-major. Είναι ο τύπος του Transform.transformMatrix και GlobalTransform.transformMatrix. Τα μεμονωμένα στοιχεία είναι προσβάσιμα ως m00m33 ιδιότητες, ή μέσω δείκτη getItem(i) / setItem(i, v). Matrix4 εξάγεται από το @aspose/3d/utilities υπο-διαδρομή.

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

ImageRenderOptions

Δημιουργήστε έναν συνδυασμένο πίνακα TRS και αποσυνθέστε τον ξανά σε συστατικά.

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()Δημιουργεί τον 4×4 μοναδιαίο πίνακα.
new Matrix4(matrix: number[])Δημιουργεί έναν πίνακα από έναν πίνακα 16 στοιχείων με διάταξη row-major.
new Matrix4(...args: number[])Δημιουργεί έναν πίνακα από 16 μεμονωμένα αριθμητικά ορίσματα.

Στατικές Ιδιότητες

ImageRenderOptionsImageRenderOptionsImageRenderOptions
Matrix4.identityMatrix4Επιστρέφει έναν νέο μοναδιαίο πίνακα.

ImageRenderOptions

Τα 16 στοιχεία του πίνακα είναι προσβάσιμα ως μεμονωμένες ονομαστικές ιδιότητες m00, m01, m02, m03, m10, …, m33, όπου το πρώτο ψηφίο είναι η γραμμή και το δεύτερο η στήλη. Όλα είναι αναγνώσιμα και εγγράψιμα.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
m00m33numberΜεμονωμένα στοιχεία πίνακα (διάταξη row-major).
determinantnumber (μόνο για ανάγνωση)Η βαθμωτή ορίζουσα του πίνακα.

Στατικές Μεθόδους

Matrix4.translate(v)

Δημιουργεί έναν καθαρό πίνακα μετάφρασης από ένα Vector3, ή από ατομικά (tx, ty, tz) αριθμοί.

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)

Δημιουργεί έναν καθαρό πίνακα κλιμάκωσης από ένα Vector3, ή από μεμονωμένους (sx, sy, sz) αριθμούς.

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

Matrix4.rotate(q)

Δημιουργεί έναν πίνακα περιστροφής από ένα Quaternion, ή από γωνία (σε ακτίνια) και άξονα 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)

Δημιουργεί έναν πίνακα περιστροφής από γωνίες Euler σε ακτίνια.

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

Μέθοδοι Αντικειμένου

concatenate(m2)

Επιστρέφει το γινόμενο των πινάκων this × m2. Χρησιμοποιήστε το για να συνδυάσετε μετασχηματισμούς (εφαρμόστε this πρώτα, μετά 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()

Επιστρέφει το αντίστροφο αυτού του πίνακα. Εγείρει εξαίρεση εάν ο πίνακας είναι μοναδικός (ορίζουσα κοντά στο μηδέν).

inverse(): Matrix4

transpose()

Επιστρέφει τη μεταφορά αυτού του πίνακα (οι γραμμές γίνονται στήλες).

transpose(): Matrix4

normalize()

Επιστρέφει έναν νέο πίνακα με την υπο‑μήτρα περιστροφής (πάνω‑αριστερά 3×3) ορθοκανονικοποιημένη διαιρώντας κάθε γραμμή με το μήκος της. Η στήλη μετάφρασης διατηρείται.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Αποσυνθέτει αυτόν τον πίνακα σε συνιστώσες μετάφρασης, κλίμακας και περιστροφής. Τα αποτελέσματα γράφονται στο πρώτο στοιχείο κάθε πίνακα εξόδου.

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

ImageRenderOptions

translation any[] — Πίνακας εξόδου. Μετά την κλήση, translation[0] είναι ένα αντικείμενο {x, y, z} με τη μετάφραση.

scaling any[] — Πίνακας εξόδου. Μετά την κλήση, scaling[0] είναι ένα αντικείμενο {x, y, z} με τους συντελεστές κλίμακας.

rotation any[] — Πίνακας εξόδου. Μετά την κλήση, rotation[0] είναι ένα αντικείμενο {w, x, y, z} με τα συστατικά του quaternion περιστροφής.

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)

Ορίζει αυτόν τον πίνακα ως το γινόμενο μιας μετάφρασης, περιστροφής και κλίμακας. Οι είσοδοι μπορούν να είναι απλά αντικείμενα με x, y, z (και w για περιστροφή) πεδία.

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

toArray()

Επιστρέφει ένα αντίγραφο του εσωτερικού 16‑στοιχείου πίνακα με διάταξη row-major.

toArray(): number[]

getItem(index) / setItem(index, value)

Πρόσβαση σε στοιχείο με γραμμικό δείκτη (0–15, σειρά row-major).

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

equals(other)

ImageRenderOptions true αν όλα τα 16 στοιχεία είναι αυστηρά ίσα.

equals(other: Matrix4): boolean
 Ελληνικά