资源描述:
《实验1opengl中的二维编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验1OpenGL中的二维编程【实验口的】1•掌握基本的openGL编程方法。2•掌握二维图形的显示方法。【实验题目】1.练习基木的openGL编程方法。(1)配置openGL,能在VC下通过编译。(2)阅读并运行simple.c,熟悉最简单的openGL程序结构。(3)阅读并运行改进的simple2.c,掌握openGL程序的通用结构。给simple2.c中的函数加注释。可尝试做如下修改:(a)改变窗口的位置,尺寸,标题;(b)改变窗口背景色和矩形颜色;(c)改变矩形的尺寸和其在窗口屮的位置,还可以只显示矩形的一部分(通过设置正投
2、影参数(glOrtho函数的参数)和矩形四个顶点的坐标来完成);2.发挥想象,编程实现在窗口屮绘制若干图形及设置它们的屈性,并回答问题:(1)绘制若干个点,分别设置每个点的颜色和大小。思考题1:glPointSize()可以放在glBeginQ和glEnd()函数对之间吗?(1)绘制若干条直线段。设置线段的颜色,线型和线宽。思考题1:以下命令会显示什么样的线段?glEnable(GL_LINE_STIPPLE);glColor3f(0.0,1.0,0.0);glLineWidth(2.0);glLineStipple(3,Oxccc
3、c);glDisable(GL_LINE_STIPPLE);思考题2:以下命令会显示什么样的线段?glShadeModel(GL_SMOOTH);glBegin(GL_LINES);glColor3f(1.0,0.0,0.0);glVertex2f(0.0,0.5);glColor3f(0.0,0.0,1.0);glVertex2f(0.5,-0.5);glEndO;将glShadeModel(GL_SMOOTH)改为glShadeModel(GL_FLAT),其余命令不变,结果乂会如何?(1)绘制若干个多边形。设置多边形的颜色,显
4、示模式,隐藏某些边。思考题以下命令会显示什么样的多边形?glShadeModel(GL_SM00TH);glBcgin(GL_P0LYG0N);glColor3f(1.0,0.0,0.0);glVertex2f(-0.5,-0.5);glColor3f(0.0,1.0,0.0);glVertex2f(-0.5,0.5);glColor3f(0.0,0.0,1.0);glVertex2f(0.5,0.5);glColor3f(1.0,1.0,0.0);glVertex2f(0.5,-0.5);glRnd();将glShadeModel
5、(GL_SM00TII)改为glShadeModel(GL_FLAT),其余命令不变,结果又会如何?将glBegin(GL_P0LYG0N)改为glBegin(GL_QUADS),分别尝试在SMOOTH和FLAT模式下的结果。思考题2:以卜•程序段分别会显示什么样的多边形?(a)glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);glColor3f(1.0,0.0,0.0);glBegin(GL_P0LYG0N);glVcrtcx2f(-0.5,-0.5);glVertex2f(-0.5,0.5);gl
6、Vertex2f(0.5,0.5);glVertex2f(0.5,-0.5);glEndO;(b)glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);glColor3f(1.0,1.0,0.0);glBegin(GL_POLYGON);glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVcrtcx2f(0.5,0.5);glVertex2f(0.5,-0.5);glEnd();(c)g一p2ygonModc(GLIFRONTIANDIBACKGLIPOINThgl
7、color3f(LpLp0・0)_glBegin(GL——POLYGOY)-glVer*tex2f(lo・5“lo・5)八glVertex2f(lo・5》0・5)八glVertex2f(0.5“0-5)八glVertex2f(0.5“—0.5)八glEndo八g_po一ygonModAGL—FRONT—ANDIBACKGL—LINEhglcolor3f(LpLp0-0^glBegin(GLIPOLYGON)-glVertex2f(lo・5“lo・5)八glEdgeFlag(GLIFALSE)-glVertex2f(lo・5,0-5)
8、八glEdgeFlag(GLITRUE)-glVertex2f(0.5》0-5)八glVertex2fp5》—0.5)八glHndo-3•学会查文档,自学。4公司某年度各月产量分别为:320,475,436,754,585,619,7