俯仰,偏航,横滚计算混乱

时间:2018-07-19 11:43:58

标签: opengl math trigonometry

我正在阅读this教程,我有些困惑。当螺距是绕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));

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

1 个答案:

答案 0 :(得分:1)

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

第二,依次施加欧拉角,在这种情况下,先施加偏航角,然后施加俯仰角。因此,您已经注意到,(s/def ::point (s/coll-of number?)) (s/def ::points (s/coll-of ::point)) (s/def ::SShape (s/keys :req-un [::style ::points])) (s/exercise (s/coll-of ::SShape)) ;; => ([[] []] [[{:style {:hidden false, :bezier false}, :points [[1.0 -3.0 0 0.75 -1.0 -1.0 0 -1.5 1.0 3.0 -1 0] [-2.0 -1 2.0 2.0 0 ... 不会像预期的那样影响Y轴。但是,一旦应用,俯仰将围绕新的Z轴而不是原始Z轴旋转。如果设置yaw = 0,您将看到yaw不再影响pitch(因为它始终为0)。