将游戏对象旋转到具有四元数的另一个四元数的问题

问题描述 投票:0回答:1

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

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

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

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

c++ 3d rotation quaternions
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.