您的位置:首页 > 运维架构

OpenGL图形旋转

2012-01-23 14:51 309 查看
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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: