资源描述:
《基于opengl的简单几何造型》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验三基于OpenGL的简单几何造型1.实验内容与目标:通过使用MicrosoftVisualStudio2005学会用opcnGL绘制一个三维立体几何。2.小组成员分工:1)程序源代码的设计以及结果的生成。2)介绍算法的具体步骤。3)整理数据。3.实验原理:openGL包含一百多个函数,每个函数具有一定的绘图功能,通过这些函数来编立体几何以及旋转变换。4.实验步骤:首先,需要包含头文件#include,这是GLUT的头文件。intmain(intargc,char*argv[]),这个是带命令行参数的main函数,注意main
2、函数屮的各语句,除丫最后的return之外,其余全部以glut开尖。这种以glut开头的函数都是GLUT工具包所提供的函数。在glutDisplayFunc函数中,我们设罝了“当需要画图时,请调用myDisplay函数”。于是myDisplay函数就用来画图。观察myDisplay中的三个函数调用,发现它们都以gl开头。这种以gl开头的函数都是OpenGL的标准函数。5.实验结果:见附图6.性能分析:1)正确性:opengl功能很强大,每个函数都有其广泛性,且函数书写简单方便。2)时间效率:由于for循环较多,且程序复杂,时间复杂度较大。3)存储空间
3、:存在函数的递归,函数的传递,所以在编程序的时候由于不断地递归和传递使得存储空间占用较大。7.附录:程序源代码。^include〈GL/glut.h〉^pragmacomment(lib,〃openg]32.1ib〃)ttpragmacomment(1ib,〃glu32.Hb〃)ttpragmacomment(lib,〃glut32.lib”)ttincludevoidmyDisplay(void){glClear(GLCOLORBUITERBIT):glRcctf(-0.5f,-0.5f,0.5f,0.5f);glFlushO
4、;}intmain(intarge,char*argv[]){glutlnit(&argc,argv);glutInitDisplayMode(GLUTRGB
5、GLUTSINGLE);g1utTnitWindowPosition(100,100);glutInitWindowSize(400,400):glutCrcateWindow(〃第1••2—°?个?OpenGL程••fo0:glutDisplayFunc(&myDisplay);glut.MainLoopO;return0;}艾件
6、£)痛S(E)现田⑵项目«)生成⑧调试®)固队©庞如工其d)
7、'=
8、r#include#includevoiddisplayO{glClearColor(0.0,0.0,0.0,0.0);glClear(GL_COLOR_BUFFER_BIT);glColor4f(1.0,0.0,0.0,1.0);//setthepointcolorglPointSize(lO);glBegin(GL_POINTS);glVertex3f(-O.5,-O.5,O.O);glVer
9、tex3f(O.5,-O.5,O.O);glVertex3f(0.5,0.5,0.0);glFlush();}intmain(intargc,char**argv){glutlnit(&argc,argv);glutInitDisplayMode(GLUT_RGB
10、GLUT.SINGLE);glutlnitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow(”第一个OpenGL程序n);glutDisplayFunc(display);glutMainLoopO;r
11、eturn0;#include#includevoiddisplayO{glClearColor(0.0,0.0,0.0,0.0);glClear(GL_COLOR_BUFFER_BIT);glColor4f(1.0,0.0,0.0,1.0);//setthelinecolorglLineWidth(5);gIBegin(GL_LINES);glVertex3f(-O.5,-O.5,O.O);glVertex3f(O.5,-O.5,O.O);glVertex3f(0.5,0.5,0.0);glFlush();}
12、intmain(intargc,char**argv){glutlnit(&argc,argv);glutI