gpt4 book ai didi

c++ - 四元数旋转不太正确

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:26 30 4
gpt4 key购买 nike

在我的 previous question 之后,我现在已经设法用四元数旋转了我的对象,但仍然有一个小问题,我不知道如何解决。使用下面的代码,我的对象围绕 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);

希望你明白我的意思。

最佳答案

But it always jumps back to the initial position when I switch between x- and y-key. So I never get a rotation from the new position, but always from the one with which the programm started.

当然可以。您的代码完全按照您的要求执行。您没有向我们展示 Quaternion::mult(Quaterion&q1,Quaterion&q1) 的作用,但我怀疑它用 q1 和 q2 的乘积替换了四元数实例的内容。您需要将当前方向乘以 q1*q2 以获得新方向,而不是将当前方向替换为 q1*q2。

关于c++ - 四元数旋转不太正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939770/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com