# 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
计算结果