我想使用四元数进行旋转。
glm库可以很好地实现这一点。
以下是我的代码:
vec3 v(0.0f, 0.0f, 1.0f);
float deg = 45.0f * 0.5f;
quat q(glm::cos(glm::radians(deg)), 0, glm::sin(glm::radians(deg)), 0);
vec3 newv = q*v;
printf("v %f %f %f \n", newv[0], newv[1], newv[2]);
我的问题是许多文章中的四元数旋转公式是什么
rotated_v = q*v*q_conj
这很奇怪。在glm中,向量“v”乘以四元数“q”就可以进行旋转。
这让我感到困惑。
rotated_v = q*v*q_conj
将会给出错误的结果。请参见:链接。 - omahena