Class Matrix4

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

Matrix4 16 sayılık tek boyutlu bir dizi olarak satır-öncelikli sırada 4×4 dönüşüm matrisini depolar. Bu, şunların türüdür Transform.transformMatrix ve GlobalTransform.transformMatrix. Tek tek elemanlara şu şekilde erişilebilir: m00m33 özellikler olarak, ya da indeksle şu şekilde: getItem(i) / setItem(i, v). Matrix4 şu konumdan dışa aktarılır @aspose/3d/utilities alt-yol.

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

Enumerations

Birleştirilmiş bir TRS matrisi oluşturun ve onu bileşenlerine geri ayrıştırın.

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

Enumerations

EnumerationsEnumerations
new Matrix4()4×4 birim matrisini oluşturur.
new Matrix4(matrix: number[])Satır-öncelikli sırada 16 elemanlı bir diziden bir matris oluşturur.
new Matrix4(...args: number[])16 ayrı sayı argümanından bir matris oluşturur.

Statik Özellikler

EnumerationsEnumerationsEnumerations
Matrix4.identityMatrix4Yeni bir birim matris döndürür.

Enumerations

16 matris elemanı, ayrı ayrı adlandırılmış özellikler olarak erişilebilir m00, m01, m02, m03, m10, …, m33, burada ilk rakam satırı, ikinci rakam sütunu gösterir. Hepsi okunabilir ve yazılabilir.

EnumerationsEnumerationsEnumerations
m00m33numberTek tek matris elemanları (satır-öncelikli düzen).
determinantnumber (yalnızca okuma)Matrisin skaler determinantı.

Statik Yöntemler

Matrix4.translate(v)

Saf bir çeviri matrisi oluşturur Vector3, veya bireysel (tx, ty, tz) sayılar.

static translate(v: Vector3): Matrix4
static translate(tx: number, ty?: number, tz?: number): Matrix4

Enumerations

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)

Saf bir ölçekleme matrisini şuradan oluşturur Vector3, ya da bireysel (sx, sy, sz) sayılar.

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

Matrix4.rotate(q)

Bir rotasyon matrisini şuradan oluşturur Quaternion, ya da bir açıdan (radyan cinsinden) ve bir eksen Vector3.

static rotate(q: Quaternion): Matrix4
static rotate(angle: number, axis: Vector3): Matrix4

Enumerations

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)

Radyan cinsinden Euler açılarıyla bir döndürme matrisi oluşturur.

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

Örnek Yöntemler

concatenate(m2)

Matris çarpımını döndürür this × m2. Bu, dönüşümleri birleştirmek için kullanın (uygulayın this önce, sonra m2).

concatenate(m2: Matrix4): Matrix4

Enumerations

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()

Bu matrisin tersini döndürür. Matris tekil ise (determinant sıfıra yakın) bir istisna fırlatır.

inverse(): Matrix4

transpose()

Bu matrisin transpozunu döndürür (satırlar sütunlara dönüşür).

transpose(): Matrix4

normalize()

Rotasyon (sol üst 3×3) alt matrisini her satırı uzunluğuna bölerek ortonormallaştıran yeni bir matris döndürür. Çeviri sütunu korunur.

normalize(): Matrix4

decompose(translation, scaling, rotation)

Bu matrisi çeviri, ölçekleme ve rotasyon bileşenlerine ayırır. Sonuçlar her çıktı dizisinin ilk elemanına yazılır.

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

Enumerations

translation any[] — Çıktı dizisi. Çağrıdan sonra, translation[0] bir nesnedir {x, y, z} çeviriyle.

scaling any[] — Çıktı dizisi. Çağrıdan sonra, scaling[0] bir nesnedir {x, y, z} ölçek faktörleriyle.

rotation any[] — Çıktı dizisi. Çağrıdan sonra, rotation[0] bir nesnedir {w, x, y, z} dönüş kuaternion bileşenleriyle.

Enumerations

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)

Bu matrisi bir çeviri, dönüş ve ölçeğin çarpımına ayarlar. Girdiler, şunları içeren basit nesneler olabilir x, y, z (ve w dönüş için) alanlar.

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

toArray()

İçsel 16 elemanlı satır-öncelikli dizinin bir kopyasını döndürür.

toArray(): number[]

getItem(index) / setItem(index, value)

Eleman erişimi lineer indeksle (0–15, row-major order).

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

equals(other)

Enumerations true tüm 16 eleman kesinlikle eşitse.

equals(other: Matrix4): boolean
 Türkçe