@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
位置向量
quaternion
旋转四元数
scale
缩放向量
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
输出位置
quaternion
输出四元数
scale
输出缩放
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
起始方向
b
目标方向
Returns
Mat4
this
fromOrthogonal()
fromOrthogonal(
left,right,bottom,top,near,far,isHalfZ):Mat4
Defined in: math/mat4.ts:313
设置正交投影矩阵
Parameters
left
number
左边界
right
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
四元数
Returns
Mat4
this
fromScaling()
fromScaling(
v):Mat4
Defined in: math/mat4.ts:352
从向量设置缩放矩阵
Parameters
v
缩放向量
Returns
Mat4
this
fromTranslation()
fromTranslation(
v):Mat4
Defined in: math/mat4.ts:342
从向量设置平移矩阵
Parameters
v
平移向量
Returns
Mat4
this
getDirection()
getDirection(
v):Vec3
Defined in: math/mat4.ts:555
获取矩阵的z朝向
Parameters
v
Vec3 = ...
Returns
getRotation()
getRotation(
v):Quat
Defined in: math/mat4.ts:535
从矩阵中获取旋转部分
Parameters
v
Quat = ...
输出四元数
Returns
v
getScaling()
getScaling(
v):Vec3
Defined in: math/mat4.ts:545
从矩阵中获取缩放部分
Parameters
v
Vec3 = ...
输出向量
Returns
v
getTranslation()
getTranslation(
v):Vec3
Defined in: math/mat4.ts:525
从矩阵中获取平移部分
Parameters
v
Vec3 = ...
输出向量
Returns
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
眼睛位置 (相机位置)
target
目标点位置
up
上向量
Returns
Mat4
this
makeRotationFromEuler()
makeRotationFromEuler(
euler):Mat4
Defined in: math/mat4.ts:570
从欧拉角创建旋转矩阵
Parameters
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
旋转轴
m
Mat4 = ...
目标矩阵,默认为 this
Returns
Mat4
this
scale()
scale(
v,m):Mat4
Defined in: math/mat4.ts:178
缩放矩阵
Parameters
v
缩放向量
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
平移向量
m
Number16 = ...
目标矩阵,默认为 this
Returns
Mat4
this
transpose()
transpose(
m):Mat4
Defined in: math/mat4.ts:409
矩阵转置
Parameters
m
Mat4 = ...
源矩阵,默认为 this
Returns
Mat4
this
