文章目录

  • 一、前置知识
  • 二、运行效果
  • 三、具体代码

一、前置知识

通过之前的学习,我们已经知道了如何创建多边形,立方体实际就是多边形围起来的三维图形,例如:

  • 椎体是4个三角形围起来的三维图形;
  • 正方体是6个正方形围起来的三维图形;

注意事项:

  • 要让您的对象绕自身的轴旋转,您必须让对象的中心坐标总是( 0.0, 0,0, 0,0 );
  • 在绘制时多边形时,要么都逆时针,要么都顺时针,但永远不要将两种次序混在一起;
  • 在绘制三角形时,开始-结束中有多余的点,OPenGL会理解为要绘制新的三角形,不会绘制成多边形;

二、运行效果


三、具体代码

完整代码可参考:OPenGL笔记–创建一个OPenGL窗口

void GL_Test::paintGL()
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除屏幕和深度缓存//-----------------------------------------glLoadIdentity();   //重置当前的模型观察矩阵glTranslatef(-1.5, 0.0, -6.0);glRotatef(rTri, 0.0, 1.0, 0.0); //绕Y轴旋转rTri度//开始绘制三角形glBegin(GL_TRIANGLES);//前侧面glColor3f(1.0, 0.0, 0.0);glVertex3f(0.0, 1.0, 0.0);      //上顶点glColor3f(0.0, 1.0, 0.0);glVertex3f(-1.0, -1.0, 1.0);    //左下顶点glColor3f(0.0, 0.0, 1.0);glVertex3f(1.0, -1.0, 1.0);     //右下顶点//右侧面glColor3f(1.0, 0.0, 0.0);glVertex3f(0.0, 1.0, 0.0);      //上顶点glColor3f(0.0, 0.0, 1.0);glVertex3f(1.0, -1.0, 1.0);     //左下顶点glColor3f(0.0, 1.0, 0.0);glVertex3f(1.0, -1.0, -1.0);    //右下顶点//后侧面glColor3f(1.0, 0.0, 0.0);glVertex3f(0.0, 1.0, 0.0);      //上顶点glColor3f(0.0, 1.0, 0.0);glVertex3f(1.0, -1.0, -1.0);    //左下顶点glColor3f(0.0, 0.0, 1.0);glVertex3f(-1.0, -1.0, -1.0);   //右下顶点//左侧面glColor3f(1.0, 0.0, 0.0);glVertex3f(0.0, 1.0, 0.0);      //上顶点glColor3f(0.0, 0.0, 1.0);glVertex3f(-1.0, -1.0, -1.0);   //左下顶点glColor3f(0.0, 1.0, 0.0);glVertex3f(-1.0, -1.0, 1.0);    //右下顶点glEnd();//绘制三角形结束//-----------------------------------------glLoadIdentity();   //重置当前的模型观察矩阵glTranslatef(-1.5, 0.0, -7.0);    //越远的对象看起来越小glRotatef(rQuad, 1.0, 1.0, 0.0);    //绕X轴旋转rQuad度//开始绘制正方形glTranslatef(3.0, 0.0, 0.0);glBegin(GL_QUADS);//顶面glColor3f(0.0, 1.0, 0.0);glVertex3f(1.0, 1.0, -1.0);     //右上顶点glVertex3f(-1.0, 1.0, -1.0);    //左上顶点glVertex3f(-1.0, 1.0, 1.0);     //左下顶点glVertex3f(1.0, 1.0, 1.0);      //右下顶点//底面glColor3f(1.0, 0.5, 0.0);glVertex3f(1.0, -1.0, 1.0);     //右上顶点glVertex3f(-1.0, -1.0, 1.0);    //左上顶点glVertex3f(-1.0, -1.0, -1.0);   //左下顶点glVertex3f(1.0, -1.0, -1.0);    //右下顶点//前面glColor3f(1.0, 0.0, 0.0);glVertex3f(1.0, 1.0, 1.0);      //右上顶点glVertex3f(-1.0, 1.0, 1.0);     //左上顶点glVertex3f(-1.0, -1.0, 1.0);    //左下顶点glVertex3f(1.0, -1.0, 1.0);     //右下顶点//后面glColor3f(1.0, 1.0, 0.0);glVertex3f(1.0, -1.0, -1.0);    //右上顶点glVertex3f(-1.0, -1.0, -1.0);   //左上顶点glVertex3f(-1.0, 1.0, -1.0);    //左下顶点glVertex3f(1.0, 1.0, -1.0);     //右下顶点//左侧面glColor3f(0.0, 0.0, 1.0);glVertex3f(-1.0, 1.0, 1.0);     //右上顶点glVertex3f(-1.0, 1.0, -1.0);    //左上顶点glVertex3f(-1.0, -1.0, -1.0);   //左下顶点glVertex3f(-1.0, -1.0, 1.0);     //右下顶点//右侧面glColor3f(1.0, 0.0, 1.0);glVertex3f(1.0, 1.0, -1.0);     //右上顶点glVertex3f(1.0, 1.0, 1.0);      //左上顶点glVertex3f(1.0, -1.0, 1.0);     //左下顶点glVertex3f(1.0, -1.0, -1.0);    //右下顶点glEnd();//绘制正方形结束//-----------------------------------------rTri += 5;rQuad += 5;
}

OPenGL笔记--创建三维图形(立方体)相关推荐

  1. OPenGL笔记--创建一个3D场景

    文章目录 一.前言 二.效果展示 三.详细流程 3.1.World.txt文件规则 3.2.加载World.txt 3.3.绘制场景 3.4.交互 四.详细代码 五.举一反三 一.前言 通过前面的学习 ...

  2. 【我的安卓进阶之旅】Opengl Es(5)三维图形绘制圆锥、圆柱和球体(附Github地址)

    之前的博客中,我们绘制了三角形.正方形.圆形.立方体,今天我们将绘制圆锥.圆柱和球体.能够绘制这些基本的常规几何形体后,其他的常见几何形体的绘制对于我们来说就基本没问题了. 绘制圆锥 由之前的博客,我 ...

  3. Origin如何绘制三维图形?

    文章目录 0.引言 1.使用矩阵簿窗口 2.三维数据转换 3.三维绘图 4.三维曲面图 5.三维XYY图 6.三维符号.条状.矢量图 7.等高线图 0.引言   因科研等多场景需要,绘制专业的图表,笔 ...

  4. Android开发笔记(一百五十三)OpenGL绘制三维图形的流程

    从这篇文章开始,接下来会连载一系列的OpenGL相关博文,好好探讨如何在Android中进行OpenGL开发. OpenGL的全称是"Open Graphics Library", ...

  5. c++ opengl 三维图形中显示文字_3D图形 和 OpenGL 简介

    一.走向3D 三维(3D)表示一个正在描述或显示的物体具有3个维度:宽度.高度和深度.例如,放在书桌上的一张画是一个二维物体,因为它没有可以令人感受得到的深度.而旁边的药瓶却能感受到它是3D,因为它具 ...

  6. OpenGL三维图形编程技术(转)

    人们对三维图形技术的研究已经经历了一个很长的历程,而且涌现了许多三维图形开发工具,其中SGI公司推出的GL(Graphics Library)三维图形库表现尤为突出,它易于使用且功能强大.随着计算机技 ...

  7. 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影)

    接上文 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等 通过三维图形变换,可由简单图形得到复杂图形,三维图形变化则分为三维几何变换和投影变换. 6.1 三维图形几何变换 三维 ...

  8. android绘制过程3d图形,Android开发之OpenGL绘制三维图形的流程

    从这篇文章开始,接下来会连载一系列的OpenGL相关博文,好好探讨如何在Android中进行OpenGL开发. OpenGL的全称是"Open Graphics Library", ...

  9. OpenGL三维图形编程技术【转】

    一.OpenGL 的发展历史 人们对三维图形技术的研究已经经历了一个很长的历程,而且涌现了许多三维图形开发工具,其中SGI公司推出的GL(Graphics Library)三维图形库表现尤为突出,它易 ...

最新文章

  1. Linux开机详细流程
  2. 浅谈HTTP事务的一个过程
  3. php 清空一个数组_php如何删除一个数组
  4. 由遍历集合所联想到的一些问题
  5. java打包带有外部jar,Eclipse使用总结——使用Eclipse打包带源码的jar包
  6. 一学就会之ado.net(一)
  7. 马哥教育20-2期27号学员的7.27上课笔记
  8. 【转】 Pro Android学习笔记(八一):服务(6):复杂数据Parcel
  9. 一文学会哈希法解题,助你事半功倍(leetcode哈希表面试高频题目总结)
  10. windows php redis扩展安装,怎么在Windows下安装PHP的Redis扩展服务
  11. 中断触发后无法进入服务程序_51单片机的中断系统及应用
  12. win10千万不要重置_小白不要再用“一键重装系统”了,后果很严重!
  13. erstudio连接mysql_ERStudio的使用
  14. 对12w条数据进行相关清理和数据迁移 (数据清理项目实战完整版)文章内有大量sql脚本
  15. PHP为什么是最好的编程语言?
  16. 创灵原始与鸿蒙,上古启示录
  17. 短暂的人生、脆弱的生命
  18. golang实现人民币小写转大写
  19. MYSQL 分组查询取最新时间的数据
  20. python离线安装第三方库whl_详细说明如何在pycharm不联网的情况下,离线安装第三方库及依赖包(如sklearn)...

热门文章

  1. 修复ASUS in WinRE教程
  2. 3dmax2014 uv用法_3DSMAX演示一个硬表面模型UV展开的方法
  3. 【Gem5】有关gem5模拟器的资料导航
  4. 《论语》中关于“忧虑”的人生启示
  5. storm java 例子_Storm 运行例子
  6. 京东金融APP被曝侵犯隐私
  7. B - Learning Languages
  8. 矩阵求逆器(最高4阶 大一新牲的代码
  9. Python通过xlwings自动化Excel-持续更新
  10. 那些入行的Python工程师们还好吗?