Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 俯仰、偏航、横摇计算混乱_Opengl_Math_Trigonometry - Fatal编程技术网

Opengl 俯仰、偏航、横摇计算混乱

Opengl 俯仰、偏航、横摇计算混乱,opengl,math,trigonometry,Opengl,Math,Trigonometry,我正在阅读教程,我有点困惑。当节距是绕x轴旋转时,为什么x值随节距变化 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::radi

我正在阅读教程,我有点困惑。当节距是绕x轴旋转时,为什么x值随节距变化

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旋转的


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

首先,俯仰似乎围绕z旋转,而不是围绕X旋转


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

这是全局x和摄影机x之间的差异。俯仰和偏航参考摄影机局部坐标系。您需要将其转换为全局坐标系。虽然俯仰对方向的水平分量没有影响,但这些公式的输出是单位向量(幅值1),因此随着俯仰的增加,水平分量必须缩小。这是全局x和摄影机x之间的差。俯仰和偏航参考摄影机局部坐标系。您需要将其转换为全局坐标系。虽然俯仰对方向的水平分量没有影响,但这些公式的输出是单位向量(幅值1),因此随着俯仰的增加,水平分量必须缩小。