使用 Three.js 获取两个 3d 向量之间的方向?

Posted

技术标签:

【中文标题】使用 Three.js 获取两个 3d 向量之间的方向?【英文标题】:Get direction between two 3d vectors using Three.js? 【发布时间】:2017-03-22 04:47:07 【问题描述】:

我有两点:

v1 = (0, 0, 0);
v2 = (10, 4, -3);

我想知道这两点之间的方向,这样我就可以从点 v1 投射到 v2。

我该怎么做?

【问题讨论】:

【参考方案1】:

创建从v1v2 的方向向量的模式如下:

var dir = new THREE.Vector3(); // create once an reuse it

...

dir.subVectors( v2, v1 ).normalize();

three.js 中的方向向量假定具有单位长度。换句话说,它们必须被标准化。如果您在光线投射时使用的方向向量的长度不等于 1,您将无法获得准确的结果。

three.js r.82

【讨论】:

【参考方案2】:

一点点数学:方向 = v2 - v1

另外,还有一点 ThreeJS 的文档:https://threejs.org/docs/#api/math/Vector3

安德...帕夫!解决方案!

 var direction = new THREE.Vector3();
 direction.subVectors( v2, v1 ) ;

【讨论】:

啊哈!就这么容易。谢谢,我会试试这个。

以上是关于使用 Three.js 获取两个 3d 向量之间的方向?的主要内容,如果未能解决你的问题,请参考以下文章

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

Three.js - 如何计算两个 3D 位置之间的距离?

Three.js Object3d 圆柱体旋转以对齐向量

在three.js中获取鼠标点击点的3D坐标

如何在three.js中的位置半径内获取其他3D对象

在 THREE.js 中获取鼠标相对于 3D 空间的坐标