我正在寻找在 THREE.js 中找到两个定义向量之间的旋转矩阵的方法。

例如
v1 = new THREE.Vector3(1, 1, 1)v2 = new THREE.Vector3(1, 1, -1)
我需要这个旋转矩阵在下一步中旋转整个对象。

最佳答案

您可以从两个单位长度向量 v1v2 定义旋转,如下所示:

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/

10-13 04:25