# Class: Matrix4
# Table of contents
# Constructors
# Accessors
# Methods
- axisRotate
- clone
- decomposeTransRotMatScale
- getColumn
- getRow
- getValue
- inverse
- multiply
- rotateByQuaternion
- scale
- set
- setArray
- setColumn
- setRow
- setValue
- toArray
- transformDirection
- transformPoint
- transformVector
- translate
- transpose
- xRotate
- yRotate
- zRotate
- composeFromRST3
- composeTQS
- composeTRS
- createFromArray
- createFromTypedArray
- createRotationAxis
- createRotationX
- createRotationY
- createRotationZ
- fromQuaternion
- lookAt
- orthographic
- perspective
# Constructors
# constructor
• new Matrix4(raw?
, offset?
)
# Parameters
Name | Type |
---|---|
raw? | Float32Array |
offset? | number |
# Accessors
# IDENTITY
• Static
get
IDENTITY(): Matrix4
单位矩阵
readonly
static
memberof
Matrix4
# Returns
单位矩阵,每次返回都会创建新的对象
# Methods
# axisRotate
▸ axisRotate(axis
, angleInRadians
, dst?
): Matrix4
将该矩阵绕指定轴旋转
memberof
Matrix4
# Parameters
# Returns
计算结果
# clone
▸ clone(): Matrix4
拷贝该矩阵
memberof
Matrix4
# Returns
拷贝出来的对象
# decomposeTransRotMatScale
▸ decomposeTransRotMatScale(dstTranslation
, dstRotationMatrix
, dstScale
): boolean
分解RTS矩阵为位移、旋转、缩放向量,返回是否成功
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
dstTranslation | Vector3 | 目标位移向量 |
dstRotationMatrix | Matrix4 | 目标旋转矩阵 |
dstScale | Vector3 | 目标缩放分量 |
# Returns
boolean
分解是否成功,如不成功,可能是缩放分量为0
# getColumn
▸ getColumn(column
, dst?
): Vector4
获取矩阵某列
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
column | number | 列数 |
dst? | Vector4 | - |
# Returns
该列数据
# getRow
▸ getRow(row
, dst?
): Vector4
获取矩阵某行
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
row | number | 行数 |
dst? | Vector4 | - |
# Returns
该行数据
# getValue
▸ getValue(column
, row
): number
获取矩阵某行某列的值
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
column | number | 列数 |
row | number | 行数 |
# Returns
number
自身
# inverse
▸ inverse(dst?
): Matrix4
求该矩阵的逆
memberof
Matrix4
# Parameters
Name | Type |
---|---|
dst? | Matrix4 |
# Returns
计算结果
# multiply
▸ multiply(m
, dst?
): Matrix4
将该矩阵与另一个矩阵相乘
memberof
Matrix4
# Parameters
# Returns
计算结果
▸ print(): void
# Returns
void
# rotateByQuaternion
▸ rotateByQuaternion(quaternion
, dst?
): Matrix4
将该矩阵使用指定四元数旋转
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
quaternion | Quaternion | 四元数 |
dst? | Matrix4 | - |
# Returns
计算结果
# scale
▸ scale(sx
, sy
, sz
, dst?
): Matrix4
将该矩阵进行缩放变换
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
sx | number | x轴缩放 |
sy | number | y轴缩放 |
sz | number | z轴缩放 |
dst? | Matrix4 | - |
# Returns
计算结果
# set
▸ set(val
): Matrix4
拷贝目标矩阵的值到该矩阵
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
val | Matrix4 | 目标 |
# Returns
自身
# setArray
▸ setArray(value
, offset?
): Matrix4
# Parameters
Name | Type |
---|---|
value | ArrayLike <number > |
offset? | number |
# Returns
# setColumn
▸ setColumn(vec
, column
): Matrix4
设置矩阵某列
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
vec | Vector4 | 列向量 |
column | number | 列数 |
# Returns
自身
# setRow
▸ setRow(vec
, row
): Matrix4
设置矩阵某行
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
vec | Vector4 | 行向量 |
row | number | 行数 |
# Returns
自身
# setValue
▸ setValue(value
, column
, row
): Matrix4
设置该矩阵某行某列的值
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
value | number | 值 |
column | number | 列数 |
row | number | 行数 |
# Returns
自身
# toArray
▸ toArray(): number
[]
返回矩阵数据
memberof
Matrix4
# Returns
number
[]
矩阵数据,以JSArray返回
# transformDirection
▸ transformDirection(dir
, dst?
): Vector3
矩阵变换作用于方向
memberof
Matrix4
# Parameters
# Returns
计算结果
# transformPoint
▸ transformPoint(p
, dst?
): Vector3
矩阵变换作用于点
memberof
Matrix4
# Parameters
# Returns
计算结果
# transformVector
▸ transformVector(v
, dst?
): Vector4
矩阵变换作用于向量
memberof
Matrix4
# Parameters
# Returns
计算结果
# translate
▸ translate(tx
, ty
, tz
, dst?
): Matrix4
将该矩阵进行位移变换
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
tx | number | x轴位移 |
ty | number | y轴位移 |
tz | number | z轴位移 |
dst? | Matrix4 | - |
# Returns
计算结果
# transpose
▸ transpose(dst?
): Matrix4
求该矩阵的转置
memberof
Matrix4
# Parameters
Name | Type |
---|---|
dst? | Matrix4 |
# Returns
计算结果
# xRotate
▸ xRotate(rx
, dst?
): Matrix4
将该矩阵绕x轴旋转
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
rx | number | 旋转幅度,用弧度表示 |
dst? | Matrix4 | - |
# Returns
计算结果
# yRotate
▸ yRotate(ry
, dst?
): Matrix4
将该矩阵绕y轴旋转
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
ry | number | 旋转幅度,用弧度表示 |
dst? | Matrix4 | - |
# Returns
计算结果
# zRotate
▸ zRotate(rz
, dst?
): Matrix4
将该矩阵绕z轴旋转
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
rz | number | 旋转幅度,用弧度表示 |
dst? | Matrix4 | - |
# Returns
计算结果
# composeFromRST3
▸ Static
composeFromRST3(m3
, dst?
): Matrix4
从二维RST矩阵扩展到三维RST矩阵
static
memberof
Matrix4
# Parameters
# Returns
计算结果
# composeTQS
▸ Static
composeTQS(translation
, rotation
, scale
, dst?
): Matrix4
将位移旋转缩放合成一个RST矩阵,旋转用四元数表示
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
translation | Vector3 | 位移向量 |
rotation | Quaternion | 旋转四元数 |
scale | Vector3 | 缩放向量 |
dst? | Matrix4 | - |
# Returns
计算结果
# composeTRS
▸ Static
composeTRS(translation
, rotation
, scale
, dst?
): Matrix4
将位移旋转缩放合成一个RST矩阵,旋转用矩阵表示
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
translation | Vector3 | 位移向量 |
rotation | Matrix4 | 旋转矩阵 |
scale | Vector3 | 缩放向量 |
dst? | Matrix4 | - |
# Returns
计算结果
# createFromArray
▸ Static
createFromArray(array
): Matrix4
使用一个数组创建 此操作会拷贝一份数组
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
array | number [] | 数据源,长度必须为16,否则会抛出异常 |
# Returns
创建出来的矩阵
# createFromTypedArray
▸ Static
createFromTypedArray(array
, offset?
): Matrix4
使用某个已有的typedArray创建 此操作不会拷贝数据,而是在原来的内存区域上操作
static
memberof
Matrix4
# Parameters
Name | Type | Default value | Description |
---|---|---|---|
array | Float32Array | undefined | 数据源 |
offset | number | 0 | - |
# Returns
创建出来的矩阵
# createRotationAxis
▸ Static
createRotationAxis(axis
, angleInRadians
, dst?
): Matrix4
创建绕指定轴旋转的矩阵
static
memberof
Matrix4
# Parameters
# Returns
计算结果
# createRotationX
▸ Static
createRotationX(rad
, dst?
): Matrix4
创建绕X轴旋转的矩阵
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
rad | number | 旋转幅度,用弧度表示 |
dst? | Matrix4 | - |
# Returns
计算结果
# createRotationY
▸ Static
createRotationY(rad
, dst?
): Matrix4
创建绕Y轴旋转的矩阵
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
rad | number | 旋转幅度,用弧度表示 |
dst? | Matrix4 | - |
# Returns
计算结果
# createRotationZ
▸ Static
createRotationZ(rad
, dst?
): Matrix4
创建绕Z轴旋转的矩阵
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
rad | number | 旋转轴 |
dst? | Matrix4 | - |
# Returns
计算结果
# fromQuaternion
▸ Static
fromQuaternion(quat
, dst?
): Matrix4
将四元数转换为旋转矩阵
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
quat | Quaternion | 四元数 |
dst? | Matrix4 | - |
# Returns
计算结果
# lookAt
▸ Static
lookAt(position
, target
, up
, dst?
): Matrix4
构造相机矩阵
static
memberof
Matrix4
# Parameters
# Returns
计算结果
# orthographic
▸ Static
orthographic(left
, right
, bottom
, top
, near
, far
, dst?
): Matrix4
构造正交投影矩阵
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
left | number | 左平面 |
right | number | 右平面 |
bottom | number | 上平面 |
top | number | 下平面 |
near | number | 近平面 |
far | number | 远平面 |
dst? | Matrix4 | - |
# Returns
计算结果
# perspective
▸ Static
perspective(fieldOfViewRadians
, aspect
, near
, far
, dst?
): Matrix4
构造透视投影矩阵
static
memberof
Matrix4
# Parameters
Name | Type | Description |
---|---|---|
fieldOfViewRadians | number | 视野大小,用弧度表示 |
aspect | number | 宽高比 |
near | number | 近平面 |
far | number | 远平面 |
dst? | Matrix4 | - |
# Returns
计算结果