【问题标题】:Gimbal lock at y axis 90 degreesy轴90度云台锁
【发布时间】:2018-02-20 16:49:52
【问题描述】:

我发现旋转有问题。 使用变换控制助手,如果我在 Y 轴上旋转一个网格,当我达到 90 度时,所有东西都会翻转 -180 度。

我认为这是由于软件避免了云台锁定,如何避免它? 也就是说,我希望 x 和 z 角在显示中保持 0 度。

我什至在 threejs 编辑器 (https://threejs.org/editor/) 上进行了尝试,它甚至出现在那里。 请帮帮我:)!

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您所描述的与云台锁无关。

    three.js 是基于四元数的。为方便起见,提供了等效的欧拉角表示。

    欧拉角不是唯一的;有许多欧拉角代表相同的方向。请参阅this answer 了解欧拉角在three.js 中的工作原理。

    如果您只想在 y 轴上旋转对象,并让 object.rotation.y 连续,您可以通过更改旋转顺序来实现,如下所示:

    object.rotation.order = 'YXZ';
    

    three.js r.87

    【讨论】:

    • 好的,明白了,非常感谢!我将考虑四元数的角度而不是网格旋转欧拉来切换所有内容。再次感谢您:)!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    相关资源
    最近更新 更多