Pitch, Yaw, Roll 计算混乱

Pitch, Yaw, Roll calculation confusion

我正在阅读 this 教程,但我有点困惑。为什么pitch是绕x轴旋转的时候,x值是随pitch变化的。

direction.x = cos(glm::radians(pitch)) * cos(glm::radians(yaw));
direction.y = sin(glm::radians(pitch));
direction.z = cos(glm::radians(pitch)) * sin(glm::radians(yaw));

我了解其余部分的变化情况,但不了解 direction.x 中的 cos(glm::radians(pitch))。怎么会这样?

首先,你的音调似乎是围绕 Z 旋转的,而不是 X。

其次,按顺序应用欧拉角,在这种情况下,首先应用 Yaw,然后应用 Pitch。因此,正如您所注意到的,yaw 不会像预期的那样影响 Y 轴。但是一旦应用它,俯仰就会围绕新的 Z 轴旋转,而不是原来的 Z 轴。如果设置 yaw=0,您将看到 pitch 不再影响 direction.z(因为它始终为 0)。