【发布时间】:2018-01-19 19:48:52
【问题描述】:
我刚开始使用四元数并注意到 glm::quat 元素的顺序是混合的。这就是我的意思。如果我像这样声明一个 glm::quat
glm::quat quat = glm::quat(1, 2, 3, 4);
然后像这样打印 x,y,z,w
std::cout << quat.x << " " << quat.y << " " << quat.z << " " << quat.w;
它打印 2 3 4 1。这是预期的行为吗?如果是的话,这背后的原因是什么?
【问题讨论】:
-
对于四元数,w,x,y,z 的正确性不亚于 x,y,z,w。或者换一种说法,如果选择先打印
quat.w,就不再是“混”了。 -
是的,所以在我的程序中,我只是按照 w,x,y,z 的顺序或常规的 x,y,z,w (至少在我使用 vec4 时是常规的)和一切效果很好。我只是好奇为什么会这样。
-
啊。您可能会问为什么
quat和vec4为共享相同 名称的变量选择不同 排序。
标签: c++ quaternions glm-math