我正在阅读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
。怎么会这样呢?
答案 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)。