我一直在尝试在 3D 空间中创建宇宙飞船。它直接向前飞。您可以通过滚动宇宙飞船并上下倾斜鼻子来改变方向。
当我改变飞船的 Z 角时,它会按预期滚动。当我改变飞船的 X 角度时,鼻子会上下倾斜。当我两者都做时,它不会按预期工作。
看来我的宇宙飞船是在世界的轴上旋转,而不是我的宇宙飞船的轴。我的意思是,当一个物体旋转时,它的轴是对的吗?显然不是。
像往常一样,非常感谢您的帮助。
这是显然不起作用的演示:http ://www.timseverien.nl/random/ohnoez/
我一直在尝试在 3D 空间中创建宇宙飞船。它直接向前飞。您可以通过滚动宇宙飞船并上下倾斜鼻子来改变方向。
当我改变飞船的 Z 角时,它会按预期滚动。当我改变飞船的 X 角度时,鼻子会上下倾斜。当我两者都做时,它不会按预期工作。
看来我的宇宙飞船是在世界的轴上旋转,而不是我的宇宙飞船的轴。我的意思是,当一个物体旋转时,它的轴是对的吗?显然不是。
像往常一样,非常感谢您的帮助。
这是显然不起作用的演示:http ://www.timseverien.nl/random/ohnoez/
查看四元数。在 ThreeJS 中,您要查看的类是 THREE.Quaternion。
四元数一般用在飞行模拟类游戏中,让你在飞行器的局部空间中旋转,不会被“云台锁定”。(那是你的两个轴平行的时候,你失去了一个自由度。)
这是对四元数的一个很好而且很有趣的解释: http ://www.isner.com/tutorials/quatSpells/quaternion_spells_14.htm
我希望这能让你走上正确的轨道......
编辑:Isner.com 早已离线,但我在 Wayback Machine 上找到了上述教程:https ://web.archive.org/web/20120601095457/http://www.isner.com/tutorials/quatSpells/quaternion_spells_14 .htm