基础类型 / 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 | 转置矩阵 |
---|