针对opengl旋转的修改, 基于QT提供的代码, glwidget.cpp
用一个matrix保存旋转矩阵;
旋转矩阵保存如下:
void GLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glRotated(yRot / 16.0, 0.0, 1.0, 0.0);
glRotated(xRot / 16.0, 1.0, 0.0, 0.0);
glMultMatrixd(matrix);
glGetDoublev(GL_MODELVIEW_MATRIX,matrix);
glPopMatrix();
glLoadIdentity();
glTranslated(0.0, 0.0, -10.0);
glMultMatrixd(matrix);
glCallList(object);
}
yRot 和 xRot 分别为旋转角度。 针对每次旋转,不做累计。