var a = new THREE.Euler( 0, 1, 1.57, 'YXZ' );
var b = new THREE.Vector3( 1, 0, 1 );
var c=b.applyEuler(a);
我们可以c
获得b.applyEuler(a)
,但我希望使用applyEuler
进行反向操作。
c
和b
已知。
我想计算a
。
答案 0 :(得分:1)
以下是您可以添加到项目中以计算Euler
轮换的倒数的方法:
THREE.Euler.prototype.inverse = function () {
var q = new THREE.Quaternion();
return function inverse() {
return this.setFromQuaternion( q.setFromEuler( this ).inverse() );
};
}();
此方法将Euler表示转换为等效的四元数表示,反转四元数,然后转换回来。
请注意,欧拉表示不是唯一的,因此反向表示也不是唯一的。
如果您有两个单位向量a
和b
,并且想知道将a
映射到b
的轮换,那么您可以使用
var q = new THREE.Quaternion().setFromUnitVectors( a, b );
a
和b
的长度必须为1,您可以使用Vector3.normalize()
方法将其设为。
three.js r.84