我正在寻找在 THREE.js 中找到两个定义向量之间的旋转矩阵的方法。
例如v1 = new THREE.Vector3(1, 1, 1)
v2 = new THREE.Vector3(1, 1, -1)
我需要这个旋转矩阵在下一步中旋转整个对象。
最佳答案
您可以从两个单位长度向量 v1
和 v2
定义旋转,如下所示:
var quaternion = new THREE.Quaternion(); // create one and reuse it
quaternion.setFromUnitVectors( v1, v2 );
在您的情况下,您需要先规范化您的向量。
然后,您可以使用以下模式将该旋转应用于对象:
var matrix = new THREE.Matrix4(); // create one and reuse it
matrix.makeRotationFromQuaternion( quaternion );
object.applyMatrix( matrix );
或者,如果您不需要矩阵,则可以直接应用四元数:
object.applyQuaternion( quaternion );
三.js r.86
关于math - 如何在 THREE.js 中找到两个向量之间的旋转矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25199173/