文章目录

  • 一、绘制 GL_QUAD_STRIP 四边形
  • 二、绘制四边形点分析
  • 三、相关资源

一、绘制 GL_QUAD_STRIP 四边形


GL_QUAD_STRIP 绘制规则 :

在 glBegin 与 glEnd 之间有 nnn 个点 , 能绘制 n2−1\cfrac{n}{2} - 12n​−1 个四边形 ,

四边形绘制顺序 : 2n−12n-12n−1 , 2n2n2n , 2n+22n + 22n+2 , 2n+12n+12n+1 四个点依次绘制 ;

第 111 个 : 按照 1,2,4,31,2,4,31,2,4,3 顺序绘制 ;

第 222 个 : 按照 3,4,6,53,4,6,53,4,6,5 顺序绘制 ;

代码示例 :

 // 只显示正面 , 不显示背面//glEnable(GL_CULL_FACE);// 设置顺时针方向 CW : Clock Wind 顺时针方向// 默认是 GL_CCW : Counter Clock Wind 逆时针方向 //glFrontFace(GL_CW);// 主消息循环:while (GetMessage(&msg, nullptr, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}// 渲染场景// 清除缓冲区 , // 使用之前设置的 glClearColor(1.0, 0.0, 0.0, 1.0) 擦除颜色缓冲区// 红色背景glClear(GL_COLOR_BUFFER_BIT);// 设置当前的绘制颜色 , 4 个 unsigned byte // 每个颜色的分量占一个字节// 参数数据是 R 红色 G 绿色 B 蓝色 A 透明度// 下面设置的含义是白色, 绘制点的时候, 每次都使用白色绘制glColor4ub(255, 255, 255, 255);// 设置线的宽度 glLineWidth(2.0f);//glBegin(GL_POINTS);    // 绘制点//glBegin(GL_LINES);  // 绘制线//glBegin(GL_LINE_STRIP);// 绘制前后连接的点组成的线//glBegin(GL_LINE_LOOP); // 绘制前后连接的点组成的线 , 并且收尾相连//glBegin(GL_TRIANGLES); // 绘制多个三角形//glBegin(GL_TRIANGLE_STRIP); // 绘制 GL_TRIANGLE_STRIP 三角形//glBegin(GL_TRIANGLE_FAN);  // 绘制三角形扇// 绘制四边形glBegin(GL_QUAD_STRIP);// 1. 设置白色 , glVertex3f (GLfloat x, GLfloat y, GLfloat z)glColor4ub(255, 255, 255, 255);glVertex3f(0.0f, 0.0f, -10.0f);// 2. 设置绿色 glColor4ub(0, 255, 0, 255);glVertex3f(-5.0f, 0.0f, -10.0f);// 3. 设置蓝色glColor4ub(0, 0, 255, 255);glVertex3f(-5.0f, -2.0f, -10.0f);// 4. 设置绿色 glColor4ub(0, 255, 0, 255);glVertex3f(0.0f, -2.0f, -10.0f);// 5. 设置白色 , glVertex3f (GLfloat x, GLfloat y, GLfloat z)glColor4ub(255, 255, 255, 255);glVertex3f(0.0f, 4.0f, -10.0f);// 6. 设置绿色 glColor4ub(0, 255, 0, 255);glVertex3f(-5.0f, 4.0f, -10.0f);// 绘制四边形结束glEnd();// 将后缓冲区绘制到前台SwapBuffers(dc);}

绘制效果 :

二、绘制四边形点分析


将点的索引标注在上图中 :

第 111 个四边形 : 按照 1,2,4,31,2,4,31,2,4,3 顺序绘制 ;

第 222 个四边形 : 按照 3,4,6,53,4,6,53,4,6,5 顺序绘制 ;

三、相关资源


GitHub 地址 : https://github.com/han1202012/OpenGL
( GitHub 源码始终都会随着后续博客的进度更新覆盖 , 可能没有本博客的相关源码 , 推荐下载博客源码快照 ) ;

博客源码快照 : https://download.csdn.net/download/han1202012/14841942
( 该源码是 Windows 桌面程序 , 使用 Visual Studio 2019 打开 )

【OpenGL】十七、OpenGL 绘制四边形 ( 绘制 GL_QUAD_STRIP 模式四边形 )相关推荐

  1. 【OpenGL】十六、OpenGL 绘制四边形 ( 绘制 GL_QUADS 四边形 )

    文章目录 一.绘制 GL_QUADS 四边形 二.绘制多个四边形 三.相关资源 一.绘制 GL_QUADS 四边形 四边形绘制时 , 在 glBegin 方法中传入 GL_QUADS 参数 , 其绘制 ...

  2. 【OpenGL ES】入门及绘制一个三角形

    本文首发于个人博客:Lam's Blog - [OpenGL ES]入门及绘制一个三角形,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博 ...

  3. OpenGL ES基础教程,绘制三角形(补充,附代码)

    简介 OpenGL OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维亦可),是一个功能强大,调用方 ...

  4. Qt下的OpenGL 编程(3)绘制平面几何体

    一. 提要 之前的一篇教程已经搭建好了Qt下的OpenGL的编程环境,几天要来学习的就是OpenGL的2D绘图. 2D作为绘图的基础,还是很值得去好好学习,比如迪卡尔坐标,透视设置等等,而所谓的3D, ...

  5. 【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )

    文章目录 一.绘制 GL_TRIANGLE_STRIP 三角形 二.GL_TRIANGLE_STRIP 三角形绘制分析 三.相关资源 一.绘制 GL_TRIANGLE_STRIP 三角形 该模式绘制首 ...

  6. OpenGL(二)——OpenGL图形绘制

    上一篇我们介绍了OpenGL的基础知识,接下来,我们就开始用OpenGL实现简单的开发之旅吧. 大纲 今天将围绕以下几个环节,进行OpenGL的开发学习. Xcode环境搭建 view的绘制之三角形绘 ...

  7. OpenGL入门学习 课程 (三) 绘制几何图形的一些细节问题

    http://oulehui.blog.163.com/blog/static/79614698201191832753312/ 先回顾一下我们都学习了些什么: 第一课,编写第一个OpenGL程序 第 ...

  8. OpenGL 立方体平行斜投影的绘制

    OpenGL 长方体平行斜投影的绘制 文章目录 OpenGL 长方体平行斜投影的绘制 题目描述 分析 平行斜投影 代码思路 必要函数介绍 鼠标操作 视图操作 编程实现 环境 代码 效果图 思考与拓展 ...

  9. 【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )

    文章目录 一.绘制三角形 二.三角形绘制顺序 1.绘制正面 2.三个点逆时针方向排列 3.三个点顺时针方向排列 4.设置点的正面方向 三.绘制多个三角形 四.相关资源 一.绘制三角形 三角形绘制即绘制 ...

最新文章

  1. R语言把dataframe数据转化为tibble格式、查看每个数据列的缺失值个数、使用数据列的均值对数据列的缺失值进行填充
  2. Volley框架学习
  3. write up杂项:眼见非实(ISCCCTF)
  4. NET问答: 为什么 IEnumerablestring 不能被初始化?
  5. dj打碟怎么学_学DJ要不要去培训学校?
  6. javascript动态添加删除行后行内计算及取值
  7. java的断点条件,java – 非行依赖的条件断点
  8. cocos2d-JS (四)如何学习
  9. Lesson 1 A puma at large
  10. Python是编译运行的
  11. 2020传道(原中国开源圈)开源寄语
  12. Android NDK下载(r10~r25) 持续更新
  13. 尽在双11:阿里巴巴技术演进与超越
  14. Python模拟QQ群发邮件
  15. 第七章 文本数据-学习笔记+练习题
  16. RSTP Proposal-Agreement
  17. 燕山大学软件测试,工程技术研究期刊版面费_软件测试期刊_燕山大学学报版面费...
  18. R语言 tidyverse 之数据处理:dplyr (中)
  19. Unity内进行布尔差运算,砍树效果的实现
  20. Asp.NET Core 加载静态文件404

热门文章

  1. [转帖]爬过这 6 个坡,你就能对 Linux 操作系统了如指掌
  2. 织梦gbk转utf8(数据库篇)
  3. 关闭360浏览器广告(广告洁癖)
  4. HDU 2009 求数列的和
  5. 模拟投掷硬币100次
  6. 数据库里any 和 all 的区别
  7. Understanding Unix/Linux Programming-终端控制和信号
  8. hibernate Disabling contextual LOB creation as connection was null
  9. 21.使用委托表达回调
  10. [Win32]一个调试器的实现(六)显示源代码