OPENGL3_基本图元
类型 | 说明 |
GL_POINTS | 单个顶点集 |
GL_LINES | 多组双顶点线段 |
GL_POLYGON | 单个简单填充凸多边形 |
GL_TRAINGLES | 多组独立填充三角形 |
GL_QUADS | 多组独立填充四边形 |
GL_LINE_STRIP | 不闭合折线 |
GL_LINE_LOOP | 闭合折线 |
GL_TRAINGLE_STRIP | 线型连续填充三角形串 |
GL_TRAINGLE_FAN | 扇形连续填充三角形串 |
GL_QUAD_STRIP | 连续填充四边形串 |
几何图元类型说明
代码效果
代码
int DrawGLScene(GLvoid) // Here's Where We Do All The Drawing
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
glLoadIdentity(); // Reset The Current Modelview Matrix //移动是相对当前位置移动(第一次移动相对与屏幕中心0,0,0下一次再移动时相对的就是本次移动后的位置了)
//向屏幕内移动18.9个单位,这样1个单位(1米)对应480/(2*tan(22.5)*(18.9+0.1)= 30像素
glTranslatef(0.0f,0.0f,-18.9f); // 绘制不连续线段,把屏幕分成9部分
glBegin(GL_LINES);
// 横线
glVertex3f( -21.0f, 3.0f, 0.0f);
glVertex3f(21.0f, 3.0f, 0.0f);
glVertex3f( -21.0f, -3.0f, 0.0f);
glVertex3f( 21.0f, -3.0f, 0.0f);
// 竖线
glVertex3f( -3.0f, 8.0f, 0.0f);
glVertex3f(-3.0f, -8.0f, 0.0f);
glVertex3f( 3.0f, 8.0f, 0.0f);
glVertex3f( 3.0f, -8.0f, 0.0f);
glEnd(); // 绘制点
glBegin(GL_POINTS);
glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色
glVertex3f( -8.0f, 5.5f, 0.0f);
glVertex3f( -7.5f, 5.5f, 0.0f);
glVertex3f( -7.0f, 5.5f, 0.0f);
glEnd(); // 绘制不闭合折线
glBegin(GL_LINE_STRIP);
glColor3f(1.0f,1.0f,0.0f);// 设置当前色为黄色
glVertex3f( -2.0f, 5.5f, 0.0f);
glVertex3f( 2.0f, 5.5f, 0.0f);
glVertex3f( -2.0f, 4.0f, 0.0f);
glVertex3f( 2.0f, 4.0f, 0.0f);
glEnd(); // 绘制闭合折线
glBegin(GL_LINE_LOOP);
glColor3f(0.0f,0.0f,1.0f);// 设置当前色为蓝色
glVertex3f( 6.0f, 6.0f, 0.0f);
glVertex3f( 4.0f, 4.0f, 0.0f);
glVertex3f( 8.0f, 4.0f, 0.0f);
glEnd(); // 绘制多组独立填充三角形(以下绘制2个三角形)
glBegin(GL_TRIANGLES);
glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色
glVertex3f( -9.0f, 1.0f, 0.0f);
glVertex3f(-8.0f,-1.0f, 0.0f);
glVertex3f( -10.0f,-1.0f, 0.0f); glVertex3f( -6.0f, 1.0f, 0.0f);
glVertex3f(-5.0f,-1.0f, 0.0f);
glVertex3f( -7.0f,-1.0f, 0.0f);
glEnd(); // 绘制三角形带
glBegin(GL_TRIANGLE_STRIP);//(以下绘制3个连续三角形) //第一个三角形由点123逆时针构成
//第二个三角形由点324逆时针构成
//第三个三角形由点345逆时针构成 glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色
glVertex3f( -2.0f,-1.0f, 0.0f);//点1
glVertex3f(0.0f,-1.0f, 0.0f);//点2
glVertex3f( -1.0f, 1.0f, 0.0f);//点3
glColor3f(0.0f,1.0f,0.0f);// 设置当前色为绿色
glVertex3f( 1.0f,1.0f, 0.0f);//点4
glColor3f(0.0f,0.0f,1.0f);// 设置当前色为蓝色
glVertex3f(2.5f,2.5f, 0.0f);//点5 glEnd(); return TRUE; // Everything Went OK
}
OPENGL3_基本图元的更多相关文章
- OpenGL ES 3.0: 图元重启(Primitive restart)
[TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...
- CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身
CSharpGL(21)用鼠标拾取.拖拽VBO图元内的点.线或本身 效果图 以最常见的三角形网格(用GL_TRIANGLES方式进行渲染)为例. 在拾取模式为GeometryType.Point时,你 ...
- CSharpGL(20)用unProject和Project实现鼠标拖拽图元
CSharpGL(20)用unProject和Project实现鼠标拖拽图元 效果图 例如,你可以把Big Dipper这个模型拽成下面这个样子. 配合旋转,还可以继续拖拽成这样. 当然,能拖拽的不只 ...
- Modern OpenGL用Shader拾取VBO内单一图元的思路和实现
Modern OpenGL用Shader拾取VBO内单一图元的思路和实现 什么意思? 拾取 最简单的理解拾取的方式大概是到(http://www.yakergong.net/nehe/course/t ...
- Modern OpenGL用Shader拾取VBO内单一图元的思路和实现(2)
Modern OpenGL用Shader拾取VBO内单一图元的思路和实现(2) 上一篇里介绍了Color-Coded Picking的思路和最基本的实现.在处理GL_POINTS时已经没有问题,但是处 ...
- Modern OpenGL用Shader拾取VBO内单一图元的思路和实现(3)
Modern OpenGL用Shader拾取VBO内单一图元的思路和实现(3) 到上一篇为止,拾取一个VBO里的单个图元的问题已经彻底解决了.那么来看下一个问题:一个场景里可能会有多个VBO,此时每个 ...
- 【Visual Lisp】图元选择集专题
图元选择集专题;;★★★01.选择集操作★★★(setq ss (ssadd));;创建一个空选择集(ssadd (car(entsel)) ss);;将点取的图元添加到ss选择集中,可以不用setq ...
- 绘制图形与3D增强技巧(五)----多边形图元的使用及其他
1.注意多边形图元中的多边形只能是平面的,而且必须为凸多边形,且多边形的边不能弯曲 2.细分和边界,可以人为设置边界边和非边界边 glEdgeFlag(true)//接下来所有点均为边界边起点 glE ...
- 绘制图形与3D增强技巧(四)----多边形图元及其点画模式
1.四边形图元 glBegin(GL_QUADS); glend(); 2.通用多边形 glBegin(GL_POLYGONS); glend(); 3.多边形点画模式 glenable(GL_POL ...
随机推荐
- repeter中应用三元运算符
应用情景一:根据ID显示名称例如:0代表启动,1:代表关闭例子如下 <td><%#Eval("ID").ToString() == "0" ? ...
- IOS-RSA加解密分享
本文转载至 http://www.cocoachina.com/bbs/read.php?tid=235527 搜索了很多资料,没找到合适的RSA方法,很多人在问这问题,解决了的同志也不分享, ...
- CSDN第一期总结之三:Thread的问题(转)
C#是一门支持多线程的语言,因此线程的使用也是比较常见的.由于线程的知识在Win32编程的时候已经说得过多,所以在.Net中很少介绍这部分(可能.Net不觉得这部分是它所特有的). 那么线程相关的问题 ...
- Virtualbox虚拟机安装RouterOS
一,下载 vdi文件https://mikrotik.com/download Cloud Hosted Routerhttps://download.mikrotik.com/routeros/6. ...
- LightOJ1245 Harmonic Number (II) —— 规律
题目链接:https://vjudge.net/problem/LightOJ-1245 1245 - Harmonic Number (II) PDF (English) Statistics ...
- Codeforces Round #374 (Div. 2) B. Passwords —— 基础题
题目链接:http://codeforces.com/contest/721/problem/B B. Passwords time limit per test 2 seconds memory l ...
- HDU1873 看病要排队 —— 优先队列(STL)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873 题解: 题目已经说出了解题方法:优先队列.但是之前没有学过优先队列,而且这题还是在现场赛做的.由 ...
- Redis缓存服务搭建及实现数据读写 - Eric.Chen
发现博客园中好多大牛在介绍自己的开源项目是很少用到缓存,比如Memcached.Redis.mongodb等,今天得空抽时间把Redis缓存研究了一下,写下来总结一下,跟大家一起分享 一下.由于小弟水 ...
- PYTHON 爬虫笔记四:正则表达式基础用法
知识点一:正则表达式详解及其基本使用方法 什么是正则表达式 正则表达式对子符串操作的一种逻辑公式,就是事先定义好的一些特定字符.及这些特定字符的组合,组成一个‘规则字符串’,这个‘规则字符串’用来表达 ...
- 脚踏实地学C#4-静态类
起因 问:静态类可以实现接口及继承? 答:都不可以 思考:为什么不可以呢? 学习 静态类,有时我们又称为工具类(密封抽象类),从MSDN文档没有直接静态类的定义,这里只能说用static(不能用于结构 ...