【OpenGL】十七、OpenGL 绘制四边形 ( 绘制 GL_QUAD_STRIP 模式四边形 )
文章目录
- 一、绘制 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 模式四边形 )相关推荐
- 【OpenGL】十六、OpenGL 绘制四边形 ( 绘制 GL_QUADS 四边形 )
文章目录 一.绘制 GL_QUADS 四边形 二.绘制多个四边形 三.相关资源 一.绘制 GL_QUADS 四边形 四边形绘制时 , 在 glBegin 方法中传入 GL_QUADS 参数 , 其绘制 ...
- 【OpenGL ES】入门及绘制一个三角形
本文首发于个人博客:Lam's Blog - [OpenGL ES]入门及绘制一个三角形,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博 ...
- OpenGL ES基础教程,绘制三角形(补充,附代码)
简介 OpenGL OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维亦可),是一个功能强大,调用方 ...
- Qt下的OpenGL 编程(3)绘制平面几何体
一. 提要 之前的一篇教程已经搭建好了Qt下的OpenGL的编程环境,几天要来学习的就是OpenGL的2D绘图. 2D作为绘图的基础,还是很值得去好好学习,比如迪卡尔坐标,透视设置等等,而所谓的3D, ...
- 【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
文章目录 一.绘制 GL_TRIANGLE_STRIP 三角形 二.GL_TRIANGLE_STRIP 三角形绘制分析 三.相关资源 一.绘制 GL_TRIANGLE_STRIP 三角形 该模式绘制首 ...
- OpenGL(二)——OpenGL图形绘制
上一篇我们介绍了OpenGL的基础知识,接下来,我们就开始用OpenGL实现简单的开发之旅吧. 大纲 今天将围绕以下几个环节,进行OpenGL的开发学习. Xcode环境搭建 view的绘制之三角形绘 ...
- OpenGL入门学习 课程 (三) 绘制几何图形的一些细节问题
http://oulehui.blog.163.com/blog/static/79614698201191832753312/ 先回顾一下我们都学习了些什么: 第一课,编写第一个OpenGL程序 第 ...
- OpenGL 立方体平行斜投影的绘制
OpenGL 长方体平行斜投影的绘制 文章目录 OpenGL 长方体平行斜投影的绘制 题目描述 分析 平行斜投影 代码思路 必要函数介绍 鼠标操作 视图操作 编程实现 环境 代码 效果图 思考与拓展 ...
- 【OpenGL】十三、OpenGL 绘制三角形 ( 绘制单个三角形 | 三角形绘制顺序 | 绘制多个三角形 )
文章目录 一.绘制三角形 二.三角形绘制顺序 1.绘制正面 2.三个点逆时针方向排列 3.三个点顺时针方向排列 4.设置点的正面方向 三.绘制多个三角形 四.相关资源 一.绘制三角形 三角形绘制即绘制 ...
最新文章
- R语言把dataframe数据转化为tibble格式、查看每个数据列的缺失值个数、使用数据列的均值对数据列的缺失值进行填充
- Volley框架学习
- write up杂项:眼见非实(ISCCCTF)
- NET问答: 为什么 IEnumerablestring 不能被初始化?
- dj打碟怎么学_学DJ要不要去培训学校?
- javascript动态添加删除行后行内计算及取值
- java的断点条件,java – 非行依赖的条件断点
- cocos2d-JS (四)如何学习
- Lesson 1 A puma at large
- Python是编译运行的
- 2020传道(原中国开源圈)开源寄语
- Android NDK下载(r10~r25) 持续更新
- 尽在双11:阿里巴巴技术演进与超越
- Python模拟QQ群发邮件
- 第七章 文本数据-学习笔记+练习题
- RSTP Proposal-Agreement
- 燕山大学软件测试,工程技术研究期刊版面费_软件测试期刊_燕山大学学报版面费...
- R语言 tidyverse 之数据处理:dplyr (中)
- Unity内进行布尔差运算,砍树效果的实现
- Asp.NET Core 加载静态文件404
热门文章
- [转帖]爬过这 6 个坡,你就能对 Linux 操作系统了如指掌
- 织梦gbk转utf8(数据库篇)
- 关闭360浏览器广告(广告洁癖)
- HDU 2009 求数列的和
- 模拟投掷硬币100次
- 数据库里any 和 all 的区别
- Understanding Unix/Linux Programming-终端控制和信号
- hibernate Disabling contextual LOB creation as connection was null
- 21.使用委托表达回调
- [Win32]一个调试器的实现(六)显示源代码