2013-05-02 27 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