【问题标题】:applyEuler inverse operationapplyEuler 逆运算
【发布时间】:2017-08-03 17:12:16
【问题描述】:
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 进行逆运算。

cb 是已知的。

我要计算a

【问题讨论】:

  • "I" 不是用小写 L 拼写的。
  • 我会知道的,谢谢。

标签: javascript three.js


【解决方案1】:

您可以在项目中添加以下方法来计算 Euler 旋转的倒数:

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

    var q = new THREE.Quaternion();

    return function inverse() {

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

    };

}();

此方法将欧拉表示转换为等效的四元数表示,反转四元数,然后再转换回来。

请注意,欧拉表示不是唯一的,因此逆向表示也不是唯一的。


如果您有两个单位向量ab,并且您想知道将a 映射到b 的旋转,那么您可以使用

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

ab 的长度必须为 1,您可以使用 Vector3.normalize() 方法来设置它们。

three.js r.84

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多