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

NameTypeAccessDescription
m00numberRead/WriteGets the m00.
m01numberRead/WriteGets the m01.
m02numberRead/WriteGets the m02.
m03numberRead/WriteGets the m03.
m10numberRead/WriteGets the m10.
m11numberRead/WriteGets the m11.
m12numberRead/WriteGets the m12.
m13numberRead/WriteGets the m13.
m20numberRead/WriteGets the m20.
m21numberRead/WriteGets the m21.
m22numberRead/WriteGets the m22.
m23numberRead/WriteGets the m23.
m30numberRead/WriteGets the m30.
m31numberRead/WriteGets the m31.
m32numberRead/WriteGets the m32.
m33numberRead/WriteGets the m33.
determinantnumberReadGets the determinant.

Statik Özellikler

SignatureDescription
constructor()Creates a new 4x4 matrix, optionally from a 16‑element number array
constructor(matrix: number[])
constructor()
constructor()
getItem(key: number)numberReturns the matrix element at the given linear index
setItem(key: number, value: number)Sets the item value.
transpose()Matrix4Returns a new Matrix4 that is the transpose of this matrix
concatenate(m2: Matrix4)Matrix4
normalize()Matrix4Returns 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()Matrix4Resets the matrix to the identity matrix and returns this instance
translate(tx: number, ty: number, tz: number)Matrix4Applies 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)Matrix4Applies 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)Matrix4Creates a rotation matrix from an angle and axis or from a quaternion
rotate(q: Quaternion)Matrix4
rotate(angle: any, axis: any)Matrix4
toString()stringReturns a human‑readable string representation of the matrix values
equals(other: Matrix4)booleanCompares this matrix with another for element‑wise equality

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