2010-01-05 508 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