Skip to content

@simversus/yjvis


@simversus/yjvis / math / Mat4

Class: Mat4 ​

Defined in: math/mat4.ts:20

4x4 矩阵类

Constructors ​

Constructor ​

new Mat4(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33): Mat4

Defined in: math/mat4.ts:43

构造函数

Parameters ​

m00 ​

number = 1

第一行第一列

m01 ​

number = 0

第一行第二列

m02 ​

number = 0

第一行第三列

m03 ​

number = 0

第一行第四列

m10 ​

number = 0

第二行第一列

m11 ​

number = 1

第二行第二列

m12 ​

number = 0

第二行第三列

m13 ​

number = 0

第二行第四列

m20 ​

number = 0

第三行第一列

m21 ​

number = 0

第三行第二列

m22 ​

number = 1

第三行第三列

m23 ​

number = 0

第三行第四列

m30 ​

number = 0

第四行第一列

m31 ​

number = 0

第四行第二列

m32 ​

number = 0

第四行第三列

m33 ​

number = 1

第四行第四列

Returns ​

Mat4

Properties ​

elements ​

elements: Number16

Defined in: math/mat4.ts:22

矩阵元素数组 (16个元素)

Methods ​

clone() ​

clone(): Mat4

Defined in: math/mat4.ts:223

返回一份副本

Returns ​

Mat4


compose() ​

compose(position, quaternion, scale): Mat4

Defined in: math/mat4.ts:421

组合矩阵 (根据位置、四元数旋转、缩放)

Parameters ​

position ​

Vec3

位置向量

quaternion ​

Quat

旋转四元数

scale ​

Vec3

缩放向量

Returns ​

Mat4

this


copy() ​

copy(m): Mat4

Defined in: math/mat4.ts:214

从其它矩阵复制

Parameters ​

m ​

Mat4

Returns ​

Mat4


decompose() ​

decompose(position, quaternion, scale): Mat4

Defined in: math/mat4.ts:475

分解矩阵为位置、四元数旋转、缩放

Parameters ​

position ​

Vec3

输出位置

quaternion ​

Quat

输出四元数

scale ​

Vec3

输出缩放

Returns ​

Mat4

this


determinant() ​

determinant(): number

Defined in: math/mat4.ts:751

计算行列式,为0表示不可逆

Returns ​

number


fromArray() ​

fromArray(array, offset): Mat4

Defined in: math/mat4.ts:229

Parameters ​

array ​

number[]

offset ​

number = 0

Returns ​

Mat4


fromDirectionA2B() ​

fromDirectionA2B(a, b): Mat4

Defined in: math/mat4.ts:367

从两个方向向量计算旋转矩阵 (从 A 旋转到 B)

Parameters ​

a ​

Vec3

起始方向

b ​

Vec3

目标方向

Returns ​

Mat4

this


fromOrthogonal() ​

fromOrthogonal(left, right, bottom, top, near, far, isHalfZ): Mat4

Defined in: math/mat4.ts:313

设置正交投影矩阵

Parameters ​

left ​

number

左边界

number

右边界

bottom ​

number

下边界

top ​

number

上边界

near ​

number

近平面

far ​

number

远平面

isHalfZ ​

boolean

是否是 WebGPU 的 0-1 的 Z 范围

Returns ​

Mat4

this


fromPerspective() ​

fromPerspective(fov, aspect, near, far, isHalfZ): Mat4

Defined in: math/mat4.ts:246

设置投影矩阵

Parameters ​

fov ​

number

视野角度 (度)

aspect ​

number

宽高比

near ​

number

近平面

far ​

number

远平面

isHalfZ ​

boolean

是否是 WebGPU 的 0-1 的 Z 范围 (WebGL 是 -1 到 1)

Returns ​

Mat4

this


fromQuaternion() ​

fromQuaternion(q): Mat4

Defined in: math/mat4.ts:332

从四元数设置旋转矩阵

Parameters ​

q ​

Quat

四元数

Returns ​

Mat4

this


fromScaling() ​

fromScaling(v): Mat4

Defined in: math/mat4.ts:352

从向量设置缩放矩阵

Parameters ​

v ​

Vec3

缩放向量

Returns ​

Mat4

this


fromTranslation() ​

fromTranslation(v): Mat4

Defined in: math/mat4.ts:342

从向量设置平移矩阵

Parameters ​

v ​

Vec3

平移向量

Returns ​

Mat4

this


getDirection() ​

getDirection(v): Vec3

Defined in: math/mat4.ts:555

获取矩阵的z朝向

Parameters ​

v ​

Vec3 = ...

Returns ​

Vec3


getRotation() ​

getRotation(v): Quat

Defined in: math/mat4.ts:535

从矩阵中获取旋转部分

Parameters ​

v ​

Quat = ...

输出四元数

Returns ​

Quat

v


getScaling() ​

getScaling(v): Vec3

Defined in: math/mat4.ts:545

从矩阵中获取缩放部分

Parameters ​

v ​

Vec3 = ...

输出向量

Returns ​

Vec3

v


getTranslation() ​

getTranslation(v): Vec3

Defined in: math/mat4.ts:525

从矩阵中获取平移部分

Parameters ​

v ​

Vec3 = ...

输出向量

Returns ​

Vec3

v


identity() ​

identity(): Mat4

Defined in: math/mat4.ts:204

设置为单位矩阵

Returns ​

Mat4

this


inverse() ​

inverse(m): Mat4

Defined in: math/mat4.ts:399

矩阵求逆

Parameters ​

m ​

Mat4 = ...

源矩阵,默认为 this

Returns ​

Mat4

this


log() ​

log(label): void

Defined in: math/mat4.ts:121

在控制台打印矩阵

Parameters ​

label ​

string = ''

标签

Returns ​

void


lookAt() ​

lookAt(eye, target, up): Mat4

Defined in: math/mat4.ts:708

视图矩阵 lookAt

Parameters ​

eye ​

Vec3

眼睛位置 (相机位置)

target ​

Vec3

目标点位置

up ​

Vec3

上向量

Returns ​

Mat4

this


makeRotationFromEuler() ​

makeRotationFromEuler(euler): Mat4

Defined in: math/mat4.ts:570

从欧拉角创建旋转矩阵

Parameters ​

euler ​

Euler

欧拉角

Returns ​

Mat4

this


multiply() ​

multiply(ma, mb?): Mat4

Defined in: math/mat4.ts:191

矩阵乘法 如果传入 mb,则 this = ma * mb 否则 this = this * ma

Parameters ​

ma ​

Mat4

矩阵 A

mb? ​

Mat4

矩阵 B (可选)

Returns ​

Mat4

this


rotate() ​

rotate(radian, axis, m): Mat4

Defined in: math/mat4.ts:167

旋转矩阵

Parameters ​

radian ​

number

弧度

axis ​

Vec3

旋转轴

m ​

Mat4 = ...

目标矩阵,默认为 this

Returns ​

Mat4

this


scale() ​

scale(v, m): Mat4

Defined in: math/mat4.ts:178

缩放矩阵

Parameters ​

v ​

Vec3

缩放向量

m ​

Mat4 = ...

目标矩阵,默认为 this

Returns ​

Mat4

this


set() ​

set(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33): Mat4

Defined in: math/mat4.ts:69

设置矩阵元素 (参数按行优先, 内部存储会自动转置为列优先) 实际上这里好像是直接写入了

Parameters ​

m00 ​

number

m01 ​

number

m02 ​

number

m03 ​

number

m10 ​

number

m11 ​

number

m12 ​

number

m13 ​

number

m20 ​

number

m21 ​

number

m22 ​

number

m23 ​

number

m30 ​

number

m31 ​

number

m32 ​

number

m33 ​

number

Returns ​

Mat4


setPosition() ​

setPosition(x, y, z): Mat4

Defined in: math/mat4.ts:153

设置位置

Parameters ​

x ​

number = 0

x

y ​

number = 0

y

z ​

number = 0

z

Returns ​

Mat4

this


toArray() ​

toArray(array, offset): number[] | TypedArray

Defined in: math/mat4.ts:760

合并数组

Parameters ​

array ​

数组

number[] | TypedArray

offset ​

number = 0

偏移量

Returns ​

number[] | TypedArray


translate() ​

translate(v, m): Mat4

Defined in: math/mat4.ts:141

平移矩阵

Parameters ​

v ​

Vec3

平移向量

m ​

Number16 = ...

目标矩阵,默认为 this

Returns ​

Mat4

this


transpose() ​

transpose(m): Mat4

Defined in: math/mat4.ts:409

矩阵转置

Parameters ​

m ​

Mat4 = ...

源矩阵,默认为 this

Returns ​

Mat4

this