2010-01-05 125 views
2

大家晚上,四元數旋轉x軸45度

我使用glMultMatrixf在OpenGL中使用的矩陣旋轉我的場景:

float matrix[16] = { 1.0, 0.0, 0.0, 0.0, 
          0.0, 1.0, 0.0, 0.0, 
          0.0, 0.0, 1.0, 0.0, 
          0.0, 0.0, 0.0, 1.0 }; 

我這個指南(link)一直在關注,但它在我所需要的頂部稍微有些過度。

我該如何簡單地將x軸旋轉45度?

乾杯

回答

1

通過這個旋轉矩陣相乘的變換矩陣應該做的伎倆:

float rot45X[16] = { 1.0,  0.0,   0.0, 0.0, 
         0.0, cos(PI/4), -sin(PI/4), 0.0, 
         0.0, sin(PI/4), cos(PI/4), 0.0, 
         0.0,  0.0,  0.0, 1.0 }; 

編輯:您還可以,當然使用的效用函數

glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); 

其中[x ,y,z]表示旋轉軸(是的,它圍繞任意矢量執行旋轉)。

在你的情況,你需要這樣的呼籲:

glRotatef(45, 1, 0, 0); 
+0

完美的感謝! – Ljdawson 2010-01-05 22:51:52