opengl学习笔记(四)——绘制简单多边形
来源:互联网 发布:网络买卖存利弊下联 编辑:程序博客网 时间:2024/05/17 22:49
glBegin函数还提供了以下几个参数来画出凸多边形。所谓凸多边形,是指它要满足如下性质:把该多边形任意一边向两方无限延长成为一条直线后,其他各边均在此直线的同侧。
(1)GL_POLYGON,这个参数用后面的顶点列表画出一个凸多边形。
例子代码:
void display(void){glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON);glVertex2f(-0.5, -0.5); //点P1,左下角glVertex2f(-0.5, 0.5); //点P2,左上角glVertex2f(0.5, 0.5); //点P3,右上角 glVertex2f(0.5, -0.5); //点P4,右下角glEnd();glFlush(); }
运行效果如下图1所示:(红色文字为我所加,不是实际运行效果,下同)
图1 内部填充为白色的矩形
默认情况下,opengl在画多边形时,会自动用指定颜色(默认为白色)填充其内部。如果想只显示多边形的边线而不填充其内部,可以在glBegin函数之前加上一句
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); 这个语句的作用告诉opengl只画出边框,但不填充内部。运行效果如下:
图 2 矩形线框
本节中后面的例子都设置为线框模式,不再赘述。
(2)GL_TRIANGLES ,将每3个顶点为一组画出一个三角形,如果剩余的顶点个数不足3个则忽略。运行效果如下所示:
(3)GL_TRIANGLES_STRIP 于GL_LINE_STRIP类似,画出顶点列表中所有由任意连续三点所组成的三角形。在本例里即依次画出三角形P1P2P3, P2P3P4 运行效果如下所示。
(4)GL_TRIANGLE_FAN
所有三角形都以第一点为顶点,另外两个顶点为连续顶点。即画出P1P2P3,P1P3P4。效果如下所示:
(5) GL_QUADS:每4个顶点为一组画出一个四边形。如果剩余点数不足4个,则忽略。
(6) GL_QUAD_STRIP:每两个顶点为一组,任意连续的两组画出一个四边形。如果有8个点为P1到P8,则最后画出3个4边形:
P1P2P3P4,
P3P4P5P6,
P5P6P7P8。
opengl还提供了一个直接画矩形的函数系列
glRect[sifd],中括号里的字符代表参数类型
s:short 短整型
i:integet 整型
f:float浮点型
d:double 双精度型。
例如下面的代码画出一个矩形框,左下角为(-0.5,-0.5),右上角为(0.5, 0.5)
void display(void){ glClear(GL_COLOR_BUFFER_BIT); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glRectf(-0.5f,-0.5f,0.5f,0.5f);glFlush(); }效果和上面的图2类似。
- opengl学习笔记(四)——绘制简单多边形
- OpenGL学习笔记 (2) —— 绘制多边形
- OpenGL学习笔记()多边形绘制-cullface
- OpenGL学习笔记(7)多边形绘制
- 学习OpenGL(五)绘制多边形
- openGL学习笔记1(入门----如何绘制 直线、多边形、圆、利用图片绘制图形等)
- openGL学习笔记三 : 绘制点、线以及多边形
- OpenGL 学习笔记3_4(绘制多边形相关)
- 学习OpenGL(四)绘制直线图形
- 学习OpenGL(四)绘制直线
- [OpenGL]图形的绘制——多边形面
- OpenCV学习——多边形绘制
- OpenGL ES 绘制多边形
- OPENGL绘制复杂多边形
- opengl绘制多边形
- OpenGL学习笔记(四)
- OpenGL学习笔记(四)
- opengl学习笔记(五)——绘制复杂图形
- 几点学习linux编程的建议
- bochs+linux
- BCH与RS的译码算法
- 《九阴真经》[Flexi引擎]渲染流程分析图(转)
- 游戏引擎Andengine总结(三):AndEngine与Android的粘合点
- opengl学习笔记(四)——绘制简单多边形
- 例解单链表的基本运算(上)
- 新概念新技术收集系列(1)
- 消息中间件 Apache Qpid 简介
- 子类重写父类注意事项 java
- 169. Forbidden fruit is sweet. 禁果格外香
- C#缓存
- 王磊先生的-稳扎稳打 Silverlight 4.0 系列文章索引 教程
- Android_手把手教你写跳跃类游戏(1)