我有以下代码:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt (0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.1, 20.0);
glRotatef ((GLfloat) 45, 0.0, 1.0, 0.0);
glRectf(-1,-1,1,1);
矩形将围绕 Y 轴旋转。正如我的结果所示,它仍然在我的窗口中心。但是为什么?
据我所知,该函数gluLookAt
修改后的 MODELVIEW 矩阵,它会发出调用以glTranslate
内部,那么上述glRotatef
调用的确切行为是什么? 为什么旋转半径不是 10?(10 是传递给 gluLookAt 的第 3 个参数)
当我看到你编码时,我正在寻找我的对象无法自旋转的原因。在我的代码中,我把glRotatef
放在gluLookAt
之前,这是与你的代码的唯一区别。我试图改变顺序,它开始自旋转。尝试更改代码中两个函数的顺序,看看它的外观。我真的不知道原因。希望有人能解释一下。