Matrix3 三维矩阵

行主序:是矩阵按照行向量来作运算, 矩阵左乘向量. 列主序:则按照列向量来作运算, 矩阵右乘向量. 两者的运算结果是不一样的. 在 OpenGL 中, 矩阵一般采用列主序作运算, 参看 Matrix4.


元素 elements 按列主序排列, 调用 set(), 可以把行主序改为列主序.

Attributes

elements : Array

Default value :
[ 1, 0, 0,
  0, 1, 0,
  0, 0, 1 ];
Description : 元素(列主序)

isMatrix3 : Boolean

Default value : true (只读)
Description : 类型是否为Matrix3.

Methods

  set( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) : this
n11, n12, n13, n21, n22, n23, n31, n32, n33 Float 元素

把矩阵从行主序变为列主序

identity( ) : this

elements 设为初始值:对角线元素为1的单位矩阵.

setFromMatrix4( m ) : this
m Matrix4 四维矩阵

从一个四维矩阵中取值赋予自身:左上角的3×3部分.

applyToBufferAttribute( attribute ) : attribute
attribute BufferAttribute 缓存属性

将此矩阵乘以 attribute 中的每个3D矢量. 123

multiply( m ) : this
m Matrix3 三维矩阵

自身左乘m, 即 multiplyMatrices( this, m )

premultiply( m ) : this
m Matrix3 三维矩阵

m右乘自身, 即 multiplyMatrices( m, this )

multiplyMatrices( a, b ) : this
a Matrix3 三维矩阵
b Matrix3 三维矩阵

a, b两个矩阵相乘

multiplyScalar( s ) : this
s Float 标量值

矩阵内的每个元素都乘以s.

determinant( ) : Float

行列式.

getInverse( matrix, throwOnDegenerate ) : this
matrix Matrix3 三维矩阵
throwOnDegenerate Boolean 如果为true, 则在矩阵不可逆时抛出错误

求 matrix 的逆矩阵. 如果未设置throwOnDegenerate且矩阵不可逆, 则将其设置为3x3单位矩阵.

transpose( ) : this

转置矩阵.

getNormalMatrix( matrix4 ) : this
matrix4 Matrix4 四维矩阵

在 matrix4 左上角的3×3部分取值, 求逆矩阵再转置.

transposeIntoArray( r ) : this
r Array 数组

矩阵元素按列主序赋值给r.

setUvTransform( tx, ty, sx, sy, rotation, cx, cy ) : this
tx, ty Float 偏移
sx, sy Float 重复
rotation Float 旋转
cx, cy Float 中心

从偏移, 重复, 旋转和居中设置UV变换矩阵.

scale( sx, sy ) : this
sx, sy Float 矩阵第一列, 第二列的缩放系数

对矩阵进行缩放变换.

rotate( theta ) : this
theta Float 弧度

对矩阵进行旋转变换.

translate( tx, ty ) : this
tx, ty Float 矩阵第一列, 第二列的平移量

对矩阵进行平移变换.

equals( matrix ) : Boolean
matrix Matrix3 三维矩阵

是否相等.

fromArray( array, offset ) : this
array Array 数组
offset Int 偏移量索引

从数组中索引为offset开始, 取数赋予自身.

toArray( array, offset ) : Array
array Array 数组
offset Int 偏移量索引

把自身的x, y, z值替换到数组中, 从索引为offset处开始替换.

clone( ) : Euler

复制自身.

copy( m ) : this
m Matrix3 三维矩阵

把一个三维矩阵赋值到自身.

图解API

矩阵乘法的运算规律如下: