1

我一直在尝试在 3D 空间中创建宇宙飞船。它直接向前飞。您可以通过滚动宇宙飞船并上下倾斜鼻子来改变方向。

当我改变飞船的 Z 角时,它会按预期滚动。当我改变飞船的 X 角度时,鼻子会上下倾斜。当我两者都做时,它不会按预期工作。

看来我的宇宙飞船是在世界的轴上旋转,而不是我的宇宙飞船的轴。我的意思是,当一个物体旋转时,它的轴是对的吗?显然不是。

像往常一样,非常感谢您的帮助。

这是显然不起作用的演示:http ://www.timseverien.nl/random/ohnoez/

4

2 回答 2

5

查看四元数。在 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

于 2012-10-19T04:07:26.850 回答
2

您不必为此了解四元数 - 只需看看这里:

Three.js - 围绕某个轴旋转球体

不止一个简单的解决方案!

于 2014-04-08T17:58:43.600 回答