2013-05-02 31 views
2

如何以正确的旋转在Three.js(r58)中创建ArrowHelper?用正确的旋转创建ArrowHelper

var point1 = new THREE.Vector3(0, 0, 0); 
var point2 = new THREE.Vector3(10, 10, 10); 
var direction = new THREE.Vector3().subVectors(point1, point2); 
var arrow = new THREE.ArrowHelper(direction.normalize(), point1); 
console.log(arrow.rotation); 

我总是以Object {x: 0, y: 0, z: 0}结束箭头旋转。我究竟做错了什么?

+0

我只是想补充一点,我想喜欢的事[本(见回答有)(http://stackoverflow.com/questions/15316127/ three-js-line-vector-to-cylinder),但似乎在ArrayHelper上不再设置旋转。 – Zardoz 2013-05-02 21:32:55

+0

var direction = new THREE.Vector3()。subVectors(** point2 **,** point1 **); – aholub7x 2014-04-30 14:46:55

回答

2

ArrowHelper使用四元数来指定它的方向。

如果你这样做:

var rotation = new THREE.Euler().setFromQuaternion(arrow.quaternion); 

,你会看到一个等效定向欧拉角表示,虽然在r.59,arrow.rotation现在自动更新,所以你将再也看不到零。

编辑:答案更新three.js所r.59

+1

非常感谢,它非常完美。还添加了一个老问题的答案[这里](http://stackoverflow.com/questions/15316127/three-js-line-vector-to-cylinder/16348610#16348610)。 – Zardoz 2013-05-02 22:16:28