我試着做一個關於x和y軸的立方體的一個簡單的旋轉:OpenGL的矩陣旋轉四元
我想總是以量X 旋轉在x軸的立方體,並通過旋轉立方體y軸通過量Y獨立於x軸旋轉
第一的i天真地做的:
glRotatef(x,1,0,0);
glRotatef(y,0,1,0);
然後
但第一旋轉OV呃x然後旋轉y 我想獨立x訪問旋轉y。
我開始尋找到四元數,所以我嘗試:
Quaternion Rotation1;
Rotation1.createFromAxisAngle(0,1, 0, globalRotateY);
Rotation1.normalize();
Quaternion Rotation2;
Rotation2.createFromAxisAngle(1,0, 0, globalRotateX);
Rotation2.normalize();
GLfloat Matrix[16];
Quaternion q=Rotation2 * Rotation1;
q.createMatrix(Matrix);
glMultMatrixf(Matrix);
,只是做幾乎正是在完成連續做2個glRotates ...所以我想我缺少一個步驟或2
是四元的路要走還是應該使用不同的東西?如果四元數是我可以添加的步驟,以使多維數據集獨立於每個軸旋轉。 我覺得有人有相同的問題: Rotating OpenGL scene in 2 axes
OK,讓我這樣說...我想要做的就是用鼠標旋轉的立方體。我想向左右控制屏幕y軸旋轉,然後向下控制屏幕x軸旋轉。我希望它們獨立於另一個軸旋轉,但僅在屏幕全局座標軸上旋轉。 如果我做2 glRotations我不會得到這種行爲,因爲一軸旋轉使另一個旋轉。 – yeahdixon 2010-07-28 07:03:01
例如旋轉立方體: 沒有旋轉操作只顯示單面 然後我做 glRotatef(90,1,0,0); \t glRotatef(45,0,1,0); \t⁃\t gives \t給我一個傾斜的立方體(鑽石),當我想要一個立方體的角落朝向相機,這實際上是交換操作的結果: \t glRotatef(45,0,1,0); \t glRotatef(90,1,0,0); 我只是交換旋轉命令,但當角度值翻轉時會遇到相同的問題。 – yeahdixon 2010-07-28 07:03:43