OpenGL图形旋转

GLfloat        rtri;                        // 用于三角形的角度
GLfloat rquad; // 用于四边形的角度
int DrawGLScene(GLvoid) // 从这里开始进行所有的绘制
{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存

glLoadIdentity(); // 重置当前的模型观察矩阵
glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0
glRotatef(rtri,0.0f,1.0f,0.0f); // 绕Y轴旋转三角形
//平滑着色
glBegin(GL_TRIANGLES); // 绘制三角形
glColor3f(1.0f,0.0f,0.0f); // 设置当前色为红色
glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点
glColor3f(0.0f,1.0f,0.0f); // 设置当前色为绿色
glVertex3f(-1.0f,-1.0f, 0.0f); // 左下
glColor3f(0.0f,0.0f,1.0f); // 设置当前色为蓝色
glVertex3f( 1.0f,-1.0f, 0.0f); // 右下
glEnd();


glLoadIdentity(); // 重置模型观察矩阵
glTranslatef(1.5f,0.0f,-6.0f); // 右移1.5单位
glRotatef(rquad,1.0f,0.0f,0.0f); // 绕X轴旋转四边形
//单一着色
glColor3f(0.5f,0.5f,0.5f); // 设置当前色为灰色
glBegin(GL_QUADS); // 绘制正方形
glVertex3f(-1.0f, 1.0f, 0.0f); // 左上
glVertex3f( 1.0f, 1.0f, 0.0f); // 右上
glVertex3f( 1.0f,-1.0f, 0.0f); // 左下
glVertex3f(-1.0f,-1.0f, 0.0f); // 右下
glEnd();

rtri+=0.5f; // 增加三角形的旋转变量
rquad-=0.5f; // 减少四边形的旋转变量

return TRUE; // 一切 OK
}
原文地址:https://www.cnblogs.com/tiandsp/p/2328965.html