OpenGL第二课
发布日期:2021-05-07 06:45:55 浏览次数:16 分类:精选文章

本文共 1201 字,大约阅读时间需要 4 分钟。

虚线

在这里插入图片描述

void myDisplay(void){   	glClear(GL_COLOR_BUFFER_BIT);	glEnable(GL_LINE_STIPPLE);	glLineStipple(2, 0x0F0F);	glLineWidth(10.0f);	glBegin(GL_LINES);	glVertex2f(0.0f, 0.0f);	glVertex2f(0.5f, 0.5f);	glEnd();	glDisable(GL_LINE_STIPPLE);	glFlush(); //让前面的命令立即执行而不是在缓冲区,与fflush(stdout)作用类似}

多边形

1)关于多边形的两面以及绘制方式

glPolygonMode(GL_FRONT,GL_FILL) //设置正面为填充方式

glPolygonMode(GL_BACK,GL_LINE) //设置反面为边缘绘制方式方式
glPolygonMode(GL_FRONT_AND_BACK,GL_POINT) //设置两面均为顶点绘制方式

2)反转

通过glFrontFace函数来交换“正面”和“反面”的概念

glFrontFace(GL_CCW) //设置ccw方向为“正面”,ccw(CounterClockWise),逆时针
glFrontFace(GL_CW) //设置cw方向为“正面”,cw(ClockWise),顺时针
在这里插入图片描述
在这里插入图片描述

void myDisplay(void){   	glClear(GL_COLOR_BUFFER_BIT);	glPolygonMode(GL_FRONT, GL_FILL);	glPolygonMode(GL_BACK, GL_LINE);	/*glFrontFace(GL_CCW);*/	glFrontFace(GL_CW);	glBegin(GL_POLYGON);	glVertex2f(-0.5f, -0.5f);	glVertex2f(0.0f, -0.5f);	glVertex2f(0.0f, 0.0f);	glVertex2f(-0.5f, 0.0f);	glEnd();	glBegin(GL_POLYGON);	glVertex2f(0.0f, 0.0f);	glVertex2f(0.0f, 0.5f);	glVertex2f(0.5f, 0.5f);	glVertex2f(0.5f, 0.0f);	glEnd();	glFlush(); //让前面的命令立即执行而不是在缓冲区,与fflush(stdout)作用类似}

3)剔除多边形表面

无法看见的背面的多边形,可以剔除掉,提高我们处理图形的效率。

使用glEnable(GL_CULL_FACE)来启动剔除功能(使用glDisable(GL_CULL_FACE)可以关闭之),然后使用glCullFace来剔除

上一篇:给你一颗心♥C语言
下一篇:用pyqt完成动态验证码

发表评论

最新留言

不错!
[***.144.177.141]2025年05月11日 02时00分47秒