四元数旋转不太对
Rotation with Quaternion not quite right
从我之前的问题,我现在已经设法旋转我的对象与四元数,但仍然有一个小问题,我不知道如何解决它。使用下面的代码,我的对象围绕x轴和y轴旋转。但是当我在x键和y键之间切换时,它总是跳回到初始位置。所以我从来没有从新的位置开始旋转,而是从程序开始的位置开始旋转。
Quaternion q1 = quaternion->quat_rotate(anglex,1,0,0);
Quaternion q2 = quaternion->quat_rotate(angley,0,1,0);
quaternion->mult(q1,q2);
quaternion->quat_matrix(Matrix);
glMultMatrixf(Matrix);
object->drawObject(Red,Green,Blue);
我希望你明白我的意思。 但是当我在x键和y键之间切换时,它总是跳回到初始位置。所以我从来没有从新的位置开始旋转,而是从程序开始的位置开始旋转。
当然有。你的代码正在做你让它做的事情。您没有向我们展示Quaternion::mult(Quaterion&q1,Quaterion&q1)
的作用,但我怀疑它用q1和q2的乘积替换了四元数实例的内容。您需要将当前方向乘以q1*q2来获得新的方向,而不是将当前方向替换为q1*q2。
相关文章:
- 将四元数旋转的游戏对象旋转另一个四元数时出现问题
- 在OpenGL(GLM/C++)中使用四元数旋转时出现问题
- 四元数旋转不起作用
- 使用四元数防止绕某个轴旋转
- 如何使用四元数来描述超过360度的旋转角度?
- 四元数旋转错误
- 特征:将矩阵3d旋转转换为四元数
- 用四元数绕轴旋转矢量
- 四元数 -> 欧拉角 -> 旋转矩阵问题 (GLM)
- C++OpenGl相机旋转使用四元数问题
- 将 glm 四元数转换为旋转矩阵并将其与 opengl 一起使用
- 四元数旋转是我瞎了还是只是做错了
- 如何否定GLM四元数在任何单轴上的旋转
- 使用四元数旋转摄影机
- 特征c++ / Matlab四元数与旋转矩阵不匹配
- 如何缩放四元数的旋转
- GLM矩阵的旋转方向,使用四元数
- 提高QVM旋转与四元数
- 小四元数相机bug?(在Z轴上轻微旋转)
- 四元数旋转不太对