四元数旋转x轴45度

时间:2010-01-05 21:43:41

标签: opengl

大家晚上,

我在OpenGL中使用glMultMatrixf来使用矩阵旋转我的场景:

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 个答案:

答案 0 :(得分: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);