前の質問に続いて、オブジェクトをクォータニオンで回転させることができましたが、まだ小さな問題があり、それを解決する方法がわかりません。以下のコードで、オブジェクトは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);
私の言いたいことをご理解いただければ幸いです。