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

时间:2016-11-08 14:05:02

标签: javascript math three.js

我有两点:

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

我想获得这两点之间的方向,所以我可以从点v1到v2进行rayCast。

我该怎么做?

2 个答案:

答案 0 :(得分:12)

创建从v1v2的方向向量时要遵循的模式是:

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

...

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

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

three.js r.82

答案 1 :(得分:3)

一点点数学:direction = v2 - v1

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

Aannd ...... Paf!解决方案!

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