文档介绍:实验一 OPENGL中的二维编程
姓名叶传军学号 E11414103 得分
1练习基本的openGL编程方法。
(1)配置openGL,能在VC下通过编译。
(2),熟悉最简单的openGL程序结构。
(3),掌握openGL程序的通用结构。。
可尝试做如下修改:
(a)改变窗口的位置,尺寸,标题;
(b)改变窗口背景色和矩形颜色;
(c)改变矩形的尺寸和其在窗口中的位置,还可以只显示矩形的一部分(通过设置正投影参数和矩形四个顶点的坐标来完成);
2发挥想象,编程实现在窗口中绘制若干图形及设置它们的属性,并回答问题:
(1)绘制若干个点,分别设置每个点的颜色和大小。
思考题1:glPointSize()可以放在glBegin()和glEnd()函数对之间吗?
(2)绘制若干条直线段。设置线段的颜色,线型和线宽。
思考题1:以下命令会显示什么样的线段?
glEnable(GL_LINE_STIPPLE);
glColor3f(, , );
glLineWidth();
glLineStipple(3, );
glDisable(GL_LINE_STIPPLE);
思考题2:以下命令会显示什么样的线段?
glShadeModel(GL_SMOOTH);
glBegin(GL_LINES);
glColor3f(, , );
glVertex2f(, );
glColor3f(, , );
glVertex2f(, -);
glEnd();
将glShadeModel(GL_SMOOTH)改为glShadeModel(GL_FLAT),其余命令不变,结果又会如何?
(3)绘制若干个多边形。设置多边形的颜色,显示模式,隐藏某些边。
思考题1:以下命令会显示什么样的多边形?
glShadeModel(GL_SMOOTH);
glBegin(GL_POLYGON);
glColor3f(, , );
glVertex2f(-, -);
glColor3f(, , );
glVertex2f(-, );
glColor3f(, , );
glVertex2f(, );
glColor3f(, , );
glVertex2f(, -);
glEnd();
将glShadeModel(GL_SMOOTH)改为glShadeModel(GL_FLAT),其余命令不变,结果又会如何?
将glBegin(GL_POLYGON)改为glBegin(GL_QUADS),分别尝试在SMOOTH和FLAT模式下的结果。
思考题2:以下程序段分别会显示什么样的多边形?
(a)
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL);
glColor3f(, , );
glBegin(GL_POLYGON);
glVertex2f(-, -);
glVertex2f(-, );
glVertex2f(, );
glVertex2f(, -);
glEnd();
(b)
glPolygonMode( GL_FRONT_AND_BACK, GL_LINE);
glColor3f(, , );
glBegin(GL_POLYGON);
glVertex2f(-, -);
glVertex2f(-, );
glVertex2f(, );
glVertex2f(, -);
glEnd();
(c)
glPolygonMode( GL_FRONT_AND_BACK, GL_POINT);
glColor3f(, , );
glBegin(GL_POLYGON);
glVertex2f(-, -);
glVertex2f(-, );
glVertex2f(, );
glVertex2f(, -);
glEnd();
思考题3:下面多边形的哪些边不可见?
glPolygonMode( GL_FRONT_AND_BACK, GL_LINE);
g