Skip to content
Matrix4x4

基础类型 / Matrix4x4

Matrix4x4 Class
​

四维矩阵


Precautions

列矩阵

Table of contents ​

Properties
​

m00: number
矩阵第 0 列第 0 行的元素。
m01: number
矩阵第 0 列第 1 行的元素。
m02: number
矩阵第 0 列第 2 行的元素。
m03: number
矩阵第 0 列第 3 行的元素。
m10: number
矩阵第 1 列第 0 行的元素。
m11: number
矩阵第 1 列第 1 行的元素。
m12: number
矩阵第 1 列第 2 行的元素。
m13: number
矩阵第 1 列第 3 行的元素。
m20: number
矩阵第 2 列第 0 行的元素。
m21: number
矩阵第 2 列第 1 行的元素。
m22: number
矩阵第 2 列第 2 行的元素。
m23: number
矩阵第 2 列第 3 行的元素。
m30: number
矩阵第 3 列第 0 行的元素。
m31: number
矩阵第 3 列第 1 行的元素。
m32: number
矩阵第 3 列第 2 行的元素。
m33: number
矩阵第 3 列第 3 行的元素。

Accessors
​

identity(): void
将当前矩阵设为单位矩阵。

Methods
​

add(mat: Matrix4x4): Matrix4x4
矩阵加法。将当前矩阵与指定矩阵的相加,结果返回给当前矩阵。
clone(a: Matrix4x4): Matrix4x4
获得指定矩阵的拷贝
determinant(): number
计算当前矩阵的行列式。
equals(other: Matrix4x4, epsilon?: number): boolean
判断当前矩阵是否在误差范围内与指定矩阵相等。
fromQuaternion(q: Quaternion): Matrix4x4
重置当前矩阵的值,使其表示指定四元数表示的旋转变换。
fromRTS(q: Quaternion, v: Vector, s: Vector): Matrix4x4
重置当前矩阵的值,使其表示指定的旋转、缩放、位移依次组合的变换。
getRotation(outer?: Quaternion): Quaternion
从当前矩阵中计算出旋转变换的部分,并以四元数的形式赋值给出口四元数。
getScale(outer?: Vector): Vector
从当前矩阵中计算出缩放变换的部分,并以各个轴上缩放的形式赋值给出口向量。
getTranslation(outer?: Vector): Vector
从当前矩阵中计算出位移变换的部分,并以各个轴上位移的形式赋值给出口向量。
identity(): void
将当前矩阵设为单位矩阵。
invert(a: Matrix4x4, outer?: Matrix4x4): Matrix4x4
矩阵求逆,注意,在矩阵不可逆时,会返回一个全为 0 的矩阵。
multiply
:-----
rotate(axis: Vector, rad: number, epsilon?: number): Matrix4x4
将当前矩阵左乘旋转矩阵的结果赋值给当前矩阵,旋转矩阵由旋转轴和旋转角度给出。
scale(vec: Vector): Matrix4x4
将当前矩阵左乘缩放矩阵的结果赋值给当前矩阵,缩放矩阵由各个轴的缩放给出。
set(other: Matrix4x4): Matrix4x4
设置当前矩阵使其与指定矩阵相等。
strictEquals(other: Matrix4x4): boolean
判断当前矩阵是否与指定矩阵相等。
subtract(mat: Matrix4x4): Matrix4x4
计算矩阵减法。将当前矩阵减去指定矩阵的结果赋值给当前矩阵。
toString(): string
返回当前矩阵的字符串表示。
translate(vec: Vector): Matrix4x4
将当前矩阵左乘位移矩阵的结果赋值给当前矩阵,位移矩阵由各个轴的位移给出。
transpose(a: Matrix4x4, outer?: Matrix4x4): Matrix4x4
转置矩阵
zero
clone(a: Matrix4x4): Matrix4x4
获得指定矩阵的拷贝
invert(a: Matrix4x4, outer?: Matrix4x4): Matrix4x4
矩阵求逆,注意,在矩阵不可逆时,会返回一个全为 0 的矩阵。
transformAffine(m: Matrix4x4, a: Vector, outer?: Vector): Vector
向量仿射变换
transformAffine4(m: Matrix4x4, a: Vector4, outer?: Vector4): Vector4
四维向量仿射变换
transformVector(m: Matrix4x4, a: Vector, outer?: Vector): Vector
向量与四维矩阵乘法,默认向量第四位为 0。
transformVector2(m: Matrix4x4, a: Vector2, outer?: Vector2): Vector2
向量与四维矩阵乘法,默认向量第三位为 0,第四位为 1。
transformVector4(m: Matrix4x4, a: Vector4, outer?: Vector4): Vector4
四维向量与四维矩阵乘法
transpose(a: Matrix4x4, outer?: Matrix4x4): Matrix4x4
转置矩阵

用给定的 other 构建一个新的 Matrix4x4

Parameters ​

other Matrix4x4给定的 Matrix4x4 对象

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

用给定的元素构建一个新的 Matrix4x4

Parameters ​

m00? number第 0 列第 0 行的元素 default:1 range:不做限制 type: 浮点数
m01? number第 0 列第 1 行的元素 default:0 range:不做限制 type: 浮点数
m02? number第 0 列第 2 行的元素 default:0 range:不做限制 type: 浮点数
m03? number第 0 列第 3 行的元素 default:0 range:不做限制 type: 浮点数
m10? number第 1 列第 0 行的元素 default:0 range:不做限制 type: 浮点数
m11? number第 1 列第 1 行的元素 default:1 range:不做限制 type: 浮点数
m12? number第 1 列第 2 行的元素 default:0 range:不做限制 type: 浮点数
m13? number第 1 列第 3 行的元素 default:0 range:不做限制 type: 浮点数
m20? number第 2 列第 0 行的元素 default:0 range:不做限制 type: 浮点数
m21? number第 2 列第 1 行的元素 default:0 range:不做限制 type: 浮点数
m22? number第 2 列第 2 行的元素 default:1 range:不做限制 type: 浮点数
m23? number第 2 列第 3 行的元素 default:0 range:不做限制 type: 浮点数
m30? number第 3 列第 0 行的元素 default:0 range:不做限制 type: 浮点数
m31? number第 3 列第 1 行的元素 default:0 range:不做限制 type: 浮点数
m32? number第 3 列第 2 行的元素 default:0 range:不做限制 type: 浮点数
m33? number第 3 列第 3 行的元素 default:1 range:不做限制 type: 浮点数

Properties ​

m00
​

• m00: number

矩阵第 0 列第 0 行的元素。


m01
​

• m01: number

矩阵第 0 列第 1 行的元素。


m02
​

• m02: number

矩阵第 0 列第 2 行的元素。


m03
​

• m03: number

矩阵第 0 列第 3 行的元素。


m10
​

• m10: number

矩阵第 1 列第 0 行的元素。


m11
​

• m11: number

矩阵第 1 列第 1 行的元素。


m12
​

• m12: number

矩阵第 1 列第 2 行的元素。


m13
​

• m13: number

矩阵第 1 列第 3 行的元素。


m20
​

• m20: number

矩阵第 2 列第 0 行的元素。


m21
​

• m21: number

矩阵第 2 列第 1 行的元素。


m22
​

• m22: number

矩阵第 2 列第 2 行的元素。


m23
​

• m23: number

矩阵第 2 列第 3 行的元素。


m30
​

• m30: number

矩阵第 3 列第 0 行的元素。


m31
​

• m31: number

矩阵第 3 列第 1 行的元素。


m32
​

• m32: number

矩阵第 3 列第 2 行的元素。


m33
​

• m33: number

矩阵第 3 列第 3 行的元素。

Accessors ​

identity
​

• Static get identity(): Matrix4x4

获得一个默认矩阵

Methods ​

add
​

• add(mat): Matrix4x4

矩阵加法。将当前矩阵与指定矩阵的相加,结果返回给当前矩阵。

Parameters ​

mat Matrix4x4相加的矩阵

Returns ​

Matrix4x4this

clone
​

• clone(): Matrix4x4

克隆当前矩阵。

Parameters ​

a Matrix4x4被克隆的四维矩阵

Returns ​

Matrix4x4返回克隆的新矩阵

determinant
​

• determinant(): number

计算当前矩阵的行列式。

Returns ​

number当前矩阵的行列式。

equals
​

• equals(other, epsilon?): boolean

判断当前矩阵是否在误差范围内与指定矩阵相等。

Parameters ​

other Matrix4x4比对的矩阵
epsilon? number误差值 default:MathUtil.EPSILON
range: 建议传入小于 1 的值。 type:浮点数

Returns ​

boolean返回矩阵比对的结果

fromQuaternion
​

• fromQuaternion(q): Matrix4x4

重置当前矩阵的值,使其表示指定四元数表示的旋转变换。

Parameters ​

q Quaternion旋转数据的四元数

Returns ​

Matrix4x4this

fromRTS
​

• fromRTS(q, v, s): Matrix4x4

重置当前矩阵的值,使其表示指定的旋转、缩放、位移依次组合的变换。

Parameters ​

q Quaternion旋转数据的四元数
v Vector位移数据的向量
s Vector缩放数据的向量

Returns ​

Matrix4x4this

getRotation
​

• getRotation(outer?): Quaternion

从当前矩阵中计算出旋转变换的部分,并以四元数的形式赋值给出口四元数。

Parameters ​

outer? Quaternion接收旋转数据的 Quaternion 对象, default:null

Returns ​

Quaternion记录旋转数据的Quaternion 对象

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Quaternion 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


getScale
​

• getScale(outer?): Vector

从当前矩阵中计算出缩放变换的部分,并以各个轴上缩放的形式赋值给出口向量。

Parameters ​

outer? Vector接收缩放数据的 Vector 对象 default:null

Returns ​

Vector缩放数据

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


getTranslation
​

• getTranslation(outer?): Vector

从当前矩阵中计算出位移变换的部分,并以各个轴上位移的形式赋值给出口向量。

Parameters ​

outer? Vector接收位移数据的 Vector 对象 default:null

Returns ​

Vector位移数据

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


identity
​

• identity(): void

将当前矩阵设为单位矩阵。


invert
​

• invert(): void

将当前矩阵变为逆矩阵。注意,在矩阵不可逆时,会返回一个全为 0 的矩阵。

Parameters ​

a Matrix4x4原矩阵
outer? Matrix4x4接收结果的 Matrix4x4 对象 default:null

Returns ​

Matrix4x4求逆后的矩阵

矩阵乘法。将当前矩阵左乘指定矩阵的结果赋值给当前矩阵。

Parameters ​

mat Matrix4x4相乘的矩阵

Returns ​

Matrix4x4this

• multiply(scalar): Matrix4x4

矩阵数乘。将当前矩阵与指定标量的数乘结果赋值给当前矩阵。

Parameters ​

scalar number对矩阵整体缩放的数 range:不做限制 type:浮点数

Returns ​

Matrix4x4this

rotate
​

• rotate(axis, rad, epsilon?): Matrix4x4

将当前矩阵左乘旋转矩阵的结果赋值给当前矩阵,旋转矩阵由旋转轴和旋转角度给出。

Parameters ​

axis Vector绕的旋转轴
rad number旋转的弧度
range: 无限制 type:浮点数
epsilon? number最小误差数 default:MathDefine.EPSILON
range: 建议传入小于 1 的值。 type:浮点数

Returns ​

Matrix4x4this

scale
​

• scale(vec): Matrix4x4

将当前矩阵左乘缩放矩阵的结果赋值给当前矩阵,缩放矩阵由各个轴的缩放给出。

Parameters ​

vec Vector缩放矩阵的向量

Returns ​

Matrix4x4this

set
​

• set(other): Matrix4x4

设置当前矩阵使其与指定矩阵相等。

Parameters ​

other Matrix4x4矩阵数据

Returns ​

Matrix4x4this

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

设置当前矩阵指定元素值。

Parameters ​

m00? number第 0 列第 0 行的元素 default:1 range:不做限制 type: 浮点数
m01? number第 0 列第 1 行的元素 default:0 range:不做限制 type: 浮点数
m02? number第 0 列第 2 行的元素 default:0 range:不做限制 type: 浮点数
m03? number第 0 列第 3 行的元素 default:0 range:不做限制 type: 浮点数
m10? number第 1 列第 0 行的元素 default:0 range:不做限制 type: 浮点数
m11? number第 1 列第 1 行的元素 default:1 range:不做限制 type: 浮点数
m12? number第 1 列第 2 行的元素 default:0 range:不做限制 type: 浮点数
m13? number第 1 列第 3 行的元素 default:0 range:不做限制 type: 浮点数
m20? number第 2 列第 0 行的元素 default:0 range:不做限制 type: 浮点数
m21? number第 2 列第 1 行的元素 default:0 range:不做限制 type: 浮点数
m22? number第 2 列第 2 行的元素 default:1 range:不做限制 type: 浮点数
m23? number第 2 列第 3 行的元素 default:0 range:不做限制 type: 浮点数
m30? number第 3 列第 0 行的元素 default:0 range:不做限制 type: 浮点数
m31? number第 3 列第 1 行的元素 default:0 range:不做限制 type: 浮点数
m32? number第 3 列第 2 行的元素 default:0 range:不做限制 type: 浮点数
m33? number第 3 列第 3 行的元素 default:1 range:不做限制 type: 浮点数

Returns ​

Matrix4x4this

strictEquals
​

• strictEquals(other): boolean

判断当前矩阵是否与指定矩阵相等。

Parameters ​

other Matrix4x4比对的矩阵

Returns ​

boolean返回矩阵比对的结果

subtract
​

• subtract(mat): Matrix4x4

计算矩阵减法。将当前矩阵减去指定矩阵的结果赋值给当前矩阵。

Parameters ​

mat Matrix4x4相减的矩阵

Returns ​

Matrix4x4this

toString
​

• toString(): string

返回当前矩阵的字符串表示。

Returns ​

string当前矩阵的字符串表示。

translate
​

• translate(vec): Matrix4x4

将当前矩阵左乘位移矩阵的结果赋值给当前矩阵,位移矩阵由各个轴的位移给出。

Parameters ​

vec Vector转换的向量

Returns ​

Matrix4x4this

transpose
​

• transpose(): void

将当前矩阵变为转置矩阵。

Parameters ​

a Matrix4x4被转置的原矩阵
outer? Matrix4x4接收结果的 Matrix4x4 对象 default:null

Returns ​

Matrix4x4转置矩阵

将当前矩阵设为 0矩阵。


clone
​

• Static clone(a): Matrix4x4

获得指定矩阵的拷贝

Parameters ​

a Matrix4x4被克隆的四维矩阵

Returns ​

Matrix4x4返回克隆的新矩阵

invert
​

• Static invert(a, outer?): Matrix4x4

矩阵求逆,注意,在矩阵不可逆时,会返回一个全为 0 的矩阵。

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Matrix4x4 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined

Parameters ​

a Matrix4x4原矩阵
outer? Matrix4x4接收结果的 Matrix4x4 对象 default:null

Returns ​

Matrix4x4求逆后的矩阵

transformAffine
​

• Static transformAffine(m, a, outer?): Vector

向量仿射变换

Parameters ​

m Matrix4x4四维矩阵
a Vector三维向量
outer? Vector接收结果的 Vector 对象 default:null

Returns ​

Vector仿射变换后得到的向量

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


transformAffine4
​

• Static transformAffine4(m, a, outer?): Vector4

四维向量仿射变换

Parameters ​

m Matrix4x4四维矩阵
a Vector4四维向量
outer? Vector4接收结果的 Vector4 对象 default:null

Returns ​

Vector4仿射变换后得到的四维向量

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector4 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


transformVector
​

• Static transformVector(m, a, outer?): Vector

向量与四维矩阵乘法,默认向量第四位为 0。

Parameters ​

m Matrix4x4被乘的四维矩阵
a Vector乘以矩阵的三维向量
outer? Vector接收结果的 Vector 对象 default:null

Returns ​

Vector转化后得到的向量

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


transformVector2
​

• Static transformVector2(m, a, outer?): Vector2

向量与四维矩阵乘法,默认向量第三位为 0,第四位为 1。

Parameters ​

m Matrix4x4被乘的四维矩阵
a Vector2乘以矩阵的二维向量
outer? Vector2接收结果的 Vector2 对象 default:null

Returns ​

Vector2返回变换后的新二维向量

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector2 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


transformVector4
​

• Static transformVector4(m, a, outer?): Vector4

四维向量与四维矩阵乘法

Parameters ​

m Matrix4x4被乘的四维矩阵
a Vector4乘以矩阵的四维向量
outer? Vector4接收结果的 Vector4 对象 default:null

Returns ​

Vector4转换后得到的四维向量

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Vector4 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined


transpose
​

• Static transpose(a, outer?): Matrix4x4

转置矩阵

Precautions

如果 outer 不为空, 返回 outer,否则返回一个新的 Matrix4x4 对象, 建议传入 outer 来减少 new 对象且 outer 不能为 null/undefined

Parameters ​

a Matrix4x4被转置的原矩阵
outer? Matrix4x4接收结果的 Matrix4x4 对象 default:null

Returns ​

Matrix4x4转置矩阵