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)。
我正在阅读 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)。