Quaternion.multiply()
是 three.js
中 Quaternion
类的一个方法,用于返回两个四元数的乘积(即两个旋转的合成)。
quaternion.multiply(quaternion2)
quaternion
: 一个 Quaternion
对象,表示第一个四元数。quaternion2
: 一个 Quaternion
对象,表示第二个四元数。返回一个新的 Quaternion
对象,表示两个四元数的乘积(旋转的合成)。
var quaternion1 = new THREE.Quaternion(0, 1, 0, 0);
var quaternion2 = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(1, 0, 0), Math.PI / 2);
var quaternion3 = new THREE.Quaternion().multiplyQuaternions(quaternion1, quaternion2);
console.log(quaternion3.x); // -1
console.log(quaternion3.y); // 0
console.log(quaternion3.z); // 0
console.log(quaternion3.w); // 0
Quaternion.multiply()
返回的是两个四元数的乘积,Quaternion.multiplyQuaternions(quaternion1, quaternion2)
方法也是同样的作用。只是这两种方法的参数位置不同。Quaternion.multiply()
方法用于每对旋转,以得到最终的旋转结果。Quaternion.multiply()
方法是非可交换的,即乘法顺序会影响最终的结果。具体来说,quaternion1.multiply(quaternion2)
的结果与 quaternion2.multiply(quaternion1)
的结果通常是不同的,因为它们对顺序的处理不同。quaternion1.multiply(quaternion2)
与quaternion2.multiply(quaternion1)
的结果通常是不同的,但是它们都会影响quaternion1
的值。如果需要保留原始的quaternion1
,则需要在乘法前先使用quaternion1.clone()
创建它的副本。