-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
。
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
。
這裏有一個方法,你可以添加到您的項目來計算Euler
旋轉的倒數:
THREE.Euler.prototype.inverse = function() {
var q = new THREE.Quaternion();
return function inverse() {
return this.setFromQuaternion(q.setFromEuler(this).inverse());
};
}();
此方法轉換歐拉表示爲等效的四元數表示,反轉四元數,然後再轉換回。
請注意,歐拉表示不是唯一的,因此反演也不是唯一的。
如果你有兩個單位向量a
和b
,你想知道映射a
到b
旋轉,那麼你可以使用
var q = new THREE.Quaternion().setFromUnitVectors(a, b);
a
和b
的長度必須1,和你可以通過使用Vector3.normalize()
方法使它們變得如此。
three.js所r.84
「** **我」 是不是用小寫L. –
拼寫我就知道了,謝謝。 –