Skip to content

二维矩阵

Mat2 类型

初始化一个二维单位矩阵

js
const mat2 = new Mat2()

私有属性

属性名描述类型
_value存放二维矩阵各个分量的数据ARRAY_TYPE

静态方法

fromValues

js
/**
 * 使用4个值创建一个二维矩阵
 * 
 * @param {Number} m00 
 * @param {Number} m01
 * @param {Number} m10 
 * @param {Number} m11 
 * @returns {Mat2}
 */

实例方法

get00

js
/**
 * 获取二维矩阵的第一行第一列的值
 * 
 * @returns {Number}
 */

get01

js
/**
 * 获取二维矩阵的第一行第二列的值
 * 
 * @returns {Number}
 */

get10

js
/**
 * 获取二维矩阵的第二行第一列的值
 * 
 * @returns {Number}
 */

get11

js
/**
 * 获取二维矩阵的第二行第二列的值
 * 
 * @returns {Number}
 */

set00

js
/**
 * 设置二维矩阵的第一行第一列的值
 * 
 * @param {Number} val
 */

set01

js
/**
 * 设置二维矩阵的第一行第二列的值
 * 
 * @param {Number} val
 */

set10

js
/**
 * 设置二维矩阵的第二行第一列的值
 * 
 * @param {Number} val
 */

set11

js
/**
 * 设置二维矩阵的第二行第二列的值
 * 
 * @param {Number} val
 */

set

js
/**
 * 设置二维矩阵的值
 * 
 * @param {Number} m00 
 * @param {Number} m01
 * @param {Number} m10 
 * @param {Number} m11 
 */

identity

js
/**
 * 设置二维矩阵为单位矩阵(对眼矩阵)
 * 
 */

clone

js
/**
 * 克隆一个二维矩阵
 * 
 * @returns {Mat2}
 */

copy

js
/**
 * 复制另一个二维矩阵的值
 * 
 * @param {Mat2} Mat2
 */

transpose

js
/**
 * 矩阵转置
 * 
 * @returns{Mat2|null}
 */

之前的行转为列,列转为行

invert

js
/**
 * 求逆矩阵
 * 
 */

首先需要确保矩阵是可逆的,这取决于其行列式是否为零。如果行列式不为零,则可以计算其逆矩阵

A=[abcd]

det(A)=adbc

A1=[adet(A)bdet(A)cdet(A)ddet(A)]

adjugate

js
/**
 * 伴随矩阵
 * 
 * @returns{Mat2|null}
 */
A=[abcd]adj(A)[dbca]

determinant

js
/**
 * 计算行列式
 * 
 * @returns{Number}
 */

对于二维矩阵,行列式的值为主对角线积减去副对角线的积

multiply

js
/**
 * 矩阵相乘
 * 
 * @param {Mat2} mat2
 */

rotate

js
/**
 * 旋转一定角度
 * 
 * @param {Number} rad
 */

scale

js
/**
 * 通过一个二维向量缩放矩阵
 * 
 * @param {Vec2} vec2
 */

subtract

js
/**
 * 矩阵相减
 * 
 */

add

js
/**
 * 矩阵相加
 * 
 */

exactEquals

js
/**
 * 判断2个二维矩阵是否严格相对
 * 
 * @param {Mat2} mat2 
 * @returns {Boolean}
 */

equals

js
/**
 * 判断2个二维矩阵是否相对相等,具体实现参考公共部分的equals方法
 * 
 * @param {Mat2} mat2 
 * @returns {Boolean}
 */

toString

js
/**
 * 以字符串显示
 * 
 * @returns{String}
 */