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转置矩阵