2017-03-13 7 views
-4
var a = new THREE.Euler(0, 1, 1.57, 'YXZ'); 
var b = new THREE.Vector3(1, 0, 1); 
var c=b.applyEuler(a); 

我々はb.applyEuler(a)cを得ることができますが、私はapplyEulerと逆の操作をします。applyEuler逆操作

cおよびbが知られている。

aを計算します。ここで

+0

"**私は**"、小文字L. –

+0

で綴られていない、私はそれを知っているだろう、ありがとうございました。 –

答えて

1

あなたはEuler回転の逆を計算するために、プロジェクトに追加することができます方法です。

THREE.Euler.prototype.inverse = function() { 

    var q = new THREE.Quaternion(); 

    return function inverse() { 

     return this.setFromQuaternion(q.setFromEuler(this).inverse()); 

    }; 

}(); 

この方法では、同等の四元表現にオイラー表現を変換四元数を反転させ、その後、戻って変換し、 。

オイラー表現は一意ではないため、逆表現も一意ではありません。


次の2つの単位ベクトルabを持っている、あなたは、あなたが

var q = new THREE.Quaternion().setFromUnitVectors(a, b); 

abを使用することができ、baをマップ回転を知りたい長さ1を持たなければならない場合は、あなたVector3.normalize()メソッドを使用すると、そうすることができます。

three.js r.84