基础类型 / 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
Matrix4x4 | this |
|---|
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
Matrix4x4 | this |
|---|
fromRTS
• fromRTS(q, v, s): Matrix4x4
重置当前矩阵的值,使其表示指定的旋转、缩放、位移依次组合的变换。
Parameters
q Quaternion | 旋转数据的四元数 |
|---|---|
v Vector | 位移数据的向量 |
s Vector | 缩放数据的向量 |
Returns
Matrix4x4 | this |
|---|
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
Matrix4x4 | this |
|---|
• multiply(scalar): Matrix4x4
矩阵数乘。将当前矩阵与指定标量的数乘结果赋值给当前矩阵。
Parameters
scalar number | 对矩阵整体缩放的数 range:不做限制 type:浮点数 |
|---|
Returns
Matrix4x4 | this |
|---|
rotate
• rotate(axis, rad, epsilon?): Matrix4x4
将当前矩阵左乘旋转矩阵的结果赋值给当前矩阵,旋转矩阵由旋转轴和旋转角度给出。
Parameters
axis Vector | 绕的旋转轴 |
|---|---|
rad number | 旋转的弧度 range: 无限制 type:浮点数 |
epsilon? number | 最小误差数 default:MathDefine.EPSILON range: 建议传入小于 1 的值。 type:浮点数 |
Returns
Matrix4x4 | this |
|---|
scale
• scale(vec): Matrix4x4
将当前矩阵左乘缩放矩阵的结果赋值给当前矩阵,缩放矩阵由各个轴的缩放给出。
Parameters
vec Vector | 缩放矩阵的向量 |
|---|
Returns
Matrix4x4 | this |
|---|
set
• set(other): Matrix4x4
设置当前矩阵使其与指定矩阵相等。
Parameters
other Matrix4x4 | 矩阵数据 |
|---|
Returns
Matrix4x4 | this |
|---|
• 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
Matrix4x4 | this |
|---|
strictEquals
• strictEquals(other): boolean
判断当前矩阵是否与指定矩阵相等。
Parameters
other Matrix4x4 | 比对的矩阵 |
|---|
Returns
boolean | 返回矩阵比对的结果 |
|---|
subtract
• subtract(mat): Matrix4x4
计算矩阵减法。将当前矩阵减去指定矩阵的结果赋值给当前矩阵。
Parameters
mat Matrix4x4 | 相减的矩阵 |
|---|
Returns
Matrix4x4 | this |
|---|
toString
• toString(): string
返回当前矩阵的字符串表示。
Returns
string | 当前矩阵的字符串表示。 |
|---|
translate
• translate(vec): Matrix4x4
将当前矩阵左乘位移矩阵的结果赋值给当前矩阵,位移矩阵由各个轴的位移给出。
Parameters
vec Vector | 转换的向量 |
|---|
Returns
Matrix4x4 | this |
|---|
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 | 转置矩阵 |
|---|