问题与四元数旋转另一个四元数旋转GameObject

时间:2019-11-24 16:47:48

标签: c++ 3d rotation quaternions

我正在为大学生制作视频游戏引擎,我实现了3D摄像机图标,以显示没有网格但带有组件摄像机的游戏对象在哪里。

https://i.gyazo.com/5cd944b8f1c3d3e08aea4c440d294a36.mp4

现在是旋转方式。我们的目标是使相机像现在一样旋转,但朝着截头圆锥体的前面看,所以我应该使相机网格向右旋转90度。

如何使原始四元数向右旋转90度?预先感谢!

1 个答案:

答案 0 :(得分:0)

为什么使用四元数来表示游戏(和其他应用程序)中的旋转的核心方面之一是,可以通过乘以四元数来非常容易地链接它们。因此,通过创建向右旋转90度的四元数,然后将其与旋转四元数相乘,您将得到同时完成上述操作的四元数。

请注意,这里的顺序很重要,因此Quaternion(90 degree to the right) * YourQuaternion会产生与YourQuaternion * Quaternion(90 degree to the right)不同的结果,类似于您在现实世界中最终以不同的轮换方式结束的情况,具体取决于您所应用的顺序旋转。就四元数而言,最右旋转是“首先应用”,因此您的“向右90度”四元数应位于乘号的右侧。