premultiply
是 Yuka js 库中 Matrix4
的一个方法之一。该方法可将当前矩阵与给定的矩阵相乘,并将结果存储在当前矩阵中。
Matrix4.premultiply(matrix);
matrix
:Array
,必需。要与当前矩阵相乘的矩阵。premultiply
方法将给定的矩阵 matrix
乘以当前矩阵。乘积的结果代替当前矩阵,并返回该矩阵。
矩阵乘法是非交换的,即如果有两个矩阵 A
和 B
,那么 AB
与 BA
的结果将是不同的。通常来说,我们使用 premultiply
方法时,我们使用 B
参数(即当前矩阵),以便获得正确的结果。
const matrix1 = new Matrix4();
matrix1.makeScale(2, 3, 4);
const matrix2 = new Matrix4();
matrix2.makeRotationX(Math.PI / 2);
matrix1.premultiply(matrix2);
console.log(matrix1.elements);
// [2, 0, 0, 0,
// 0, 0, 3, 0,
// 0, -4, 0, 0,
// 0, 0, 0, 1]
在此示例中,我们创建了两个矩阵 matrix1
和 matrix2
。然后,我们使用 makeScale()
和 makeRotationX()
方法将其修改为比例矩阵和绕 x
轴的旋转矩阵。
最后,我们使用 premultiply()
方法将 matrix2
与 matrix1
相乘,并将结果存储在 matrix1
中。最终的矩阵将包含先缩放再旋转的变换。