math - 如何在 THREE.js 中找到两个向量之间的旋转矩阵

标签 math matrix vector three.js

我正在寻找在 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/

相关文章:

swift - 如何在spritekit swift中获取一行的dx和dy

javascript - 如何在 html 中创建一个矩阵然后将其解析为 javascript?

c - 使用scanf的 vector 输入(C语言)

optimization - Haskell:列表/向量/数组性能调优

language-agnostic - 是否有将四元数旋转转换为欧拉角旋转的算法?

javascript - javascript 中 Math.cos 函数将度数转换为弧度时出现问题

algorithm - 寻找具有最小距离的唯一样本对

matlab - 矩阵中元素的总和使用matlab的求和函数

math - 如何计算垂直线段的端点?

带括号的语法