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