学习OpenGL总结三

  1. 学习OpenGL总结三
  2. DrawGLScene_3D.h  内容如下:
  3. //#include "DrawGLScene_3D.h"
  4. #pragma once
  5. //modify date:2009-01-08   vp:hsg
  6. //#include <windows.h> // Windows的头文件
  7. #include <stdio.h> // 标准输入/输出库的头文件 ( 新增 )
  8. #include "OpenGL_FirstWin32.h"
  9. //定义贴图OpenGL框架类
  10. class OpenGLFrameWork_3D :public OpenGLFrameWork
  11. {
  12.     public:
  13.         int DrawGLScene();
  14.         int DrawGLScene_3D(GLvoid);
  15. };
  16. //实现方法
  17. int OpenGLFrameWork_3D::DrawGLScene()
  18. {
  19.     return this->DrawGLScene_3D();
  20. };
  21. //第五课内容  向3D进军
  22. int OpenGLFrameWork_3D::DrawGLScene_3D(GLvoid) // 此过程中包括所有的绘制代码
  23. {
  24.     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
  25.     glLoadIdentity(); // 重置模型观察矩阵
  26.     glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0
  27.     glRotatef(rtri,0.0f,1.0f,0.0f); // 绕Y轴旋转金字塔
  28.     glBegin(GL_TRIANGLES); // 开始绘制金字塔的各个面
  29.     glColor3f(1.0f,0.0f,0.0f); // 红色
  30.     glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (前侧面)
  31.     glColor3f(0.0f,1.0f,0.0f); // 绿色
  32.     glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的左下顶点 (前侧面)
  33.     glColor3f(0.0f,0.0f,1.0f); // 蓝色
  34.     glVertex3f( 1.0f,-1.0f, 1.0f); // 三角形的右下顶点 (前侧面)
  35.     glColor3f(1.0f,0.0f,0.0f); // 红色
  36.     glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (右侧面)
  37.     glColor3f(0.0f,0.0f,1.0f); // 蓝色
  38.     glVertex3f( 1.0f,-1.0f, 1.0f); // 三角形的左下顶点 (右侧面)
  39.     glColor3f(0.0f,1.0f,0.0f); // 绿色
  40.     glVertex3f( 1.0f,-1.0f, -1.0f); // 三角形的右下顶点 (右侧面)
  41.     glColor3f(1.0f,0.0f,0.0f); // 红色
  42.     glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (后侧面)
  43.     glColor3f(0.0f,1.0f,0.0f); // 绿色
  44.     glVertex3f( 1.0f,-1.0f, -1.0f); // 三角形的左下顶点 (后侧面)
  45.     glColor3f(0.0f,0.0f,1.0f); // 蓝色
  46.     glVertex3f(-1.0f,-1.0f, -1.0f); // 三角形的右下顶点 (后侧面)
  47.     glColor3f(1.0f,0.0f,0.0f); // 红色
  48.     glVertex3f( 0.0f, 1.0f, 0.0f); // 三角形的上顶点 (左侧面)
  49.     glColor3f(0.0f,0.0f,1.0f);// 蓝色
  50.     glVertex3f(-1.0f,-1.0f,-1.0f); // 三角形的左下顶点 (左侧面)
  51.     glColor3f(0.0f,1.0f,0.0f); // 绿色
  52.     glVertex3f(-1.0f,-1.0f, 1.0f); // 三角形的右下顶点 (左侧面)
  53.     glEnd(); //金字塔绘制结束
  54.     glLoadIdentity();
  55.     glTranslatef(1.5f,0.0f,-7.0f); // 先右移再移入屏幕
  56.     glRotatef(rquad,1.0f,1.0f,1.0f); // 在XYZ轴上旋转立方体
  57.     glBegin(GL_QUADS); // 开始绘制立方体
  58.     glColor3f(0.0f,1.0f,0.0f); // 颜色改为蓝色
  59.     glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右上顶点 (顶面)
  60.     glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左上顶点 (顶面)
  61.     glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下顶点 (顶面)
  62.     glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下顶点 (顶面)
  63.     glColor3f(1.0f,0.5f,0.0f); // 颜色改成橙色
  64.     glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的右上顶点(底面)
  65.     glVertex3f(-1.0f,-1.0f, 1.0f); // 四边形的左上顶点(底面)
  66.     glVertex3f(-1.0f,-1.0f,-1.0f); // 四边形的左下顶点(底面)
  67.     glVertex3f( 1.0f,-1.0f,-1.0f); // 四边形的右下顶点(底面)
  68.     glColor3f(1.0f,0.0f,0.0f); // 颜色改成红色
  69.     glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上顶点(前面)
  70.     glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上顶点(前面)
  71.     glVertex3f(-1.0f,-1.0f, 1.0f); // 四边形的左下顶点(前面)
  72.     glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的右下顶点(前面)
  73.     glColor3f(1.0f,1.0f,0.0f); // 颜色改成黄色
  74.     glVertex3f( 1.0f,-1.0f,-1.0f); // 四边形的右上顶点(后面)
  75.     glVertex3f(-1.0f,-1.0f,-1.0f); // 四边形的左上顶点(后面)
  76.     glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左下顶点(后面)
  77.     glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右下顶点(后面)
  78.     glColor3f(0.0f,0.0f,1.0f); // 颜色改成蓝色
  79.     glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的右上顶点(左面)
  80.     glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左上顶点(左面)
  81.     glVertex3f(-1.0f,-1.0f,-1.0f); // 四边形的左下顶点(左面)
  82.     glVertex3f(-1.0f,-1.0f, 1.0f); // 四边形的右下顶点(左面)
  83.     glColor3f(1.0f,0.0f,1.0f); // 颜色改成紫罗兰色
  84.     glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右上顶点(右面)
  85.     glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的左上顶点(右面)
  86.     glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的左下顶点(右面)
  87.     glVertex3f( 1.0f,-1.0f,-1.0f); // 四边形的右下顶点(右面)
  88.     glEnd(); // 立方体绘制结束
  89.     rtri+=0.5f; // 增加三角形的旋转变量(新增)
  90.     rquad-=0.55f; // 减少四边形的旋转变量(新增)
  91.     return TRUE; // 继续运行
  92. };
posted @ 2009-01-09 23:21  sqlite例子  阅读(153)  评论(0)    收藏  举报