交互式计算机图形学_实 例 程 序

交互式计算机图形学_实 例 程 序

ID:10004914

大小:214.00 KB

页数:59页

时间:2018-05-20

交互式计算机图形学_实 例 程 序_第1页
交互式计算机图形学_实 例 程 序_第2页
交互式计算机图形学_实 例 程 序_第3页
交互式计算机图形学_实 例 程 序_第4页
交互式计算机图形学_实 例 程 序_第5页
资源描述:

《交互式计算机图形学_实 例 程 序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、643附录A实例程序A.1Sierpinski镂垫程序/*two-dimensionalSierpinskigasket*//*generatedusingrandomlyselectedvertices*//*andbisection*/#include/*youmayhavetochangetheincludetoorelsewheredependingonwhereitisstoredonyoursystem*//*glut.husuallyhasincludedforgl.handglu.h*/voidmyinit(void){

2、/*attributes*/glClearColor(1.0,1.0,1.0,1.0);/*whitebackground*/glColor3f(1.0,0.0,0.0);/*drawinred*//*setupviewing*//*50.0×50.0cameracoordinatewindowwithoriginlowerleft*/glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0,50.0,0.0,50.0);glMatrixMode(GL_MODELVIEW);}voiddisplay(void){

3、/*Atriangle*/GLfloatvertices[3][2]={{0.0,0.0},{25.0,50.0},{50.0,0.0}};inti,j,k;intrand();/*standardrandomnumbergenerator*/GLfloatp[2]={7.5,5.0};/*anarbitraryinitialpointinsidetraingle*/glClear(GL_COLOR_BUFFER_BIT);/*clearthewindow*/glBegin(GL_POINTS);/*computeandplots5000newpoints*/for(k=0

4、;k<5000;k++){j=rand()%3;/*pickavertexatrandom*//*Computepointhalfwaybetweenselectedvertexandoldpoint*/643附录A实例程序p[0]=(p[0]+vertices[j][0])/2.0;p[1]=(p[1]+vertices[j][1])/2.0;/*plotnewpoint*/glVertex2fv(p);}glEnd();glFlush();/*clearbuffers*/}voidmain(intargc,char**argv){/*StandardGLUTinitia

5、lization*/glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE

6、GLUT_RGB);/*default,notneeded*/glutInitWindowSize(500,500);/*500×500pixelwindow*/glutInitWindowPosition(0,0);/*placewindowtopleftondisplay*/glutCreateWindow("SierpinskiGasket");/*windowtitle*/glutDisplayFunc(display);/*displayc

7、allbackinvokedwhenwindowopened*/myinit();/*setattributes*/glutMainLoop();/*entereventloop*/}A.2生成Sierpinski镂垫的递归程序/*RecursivesubdivisionoftriangletoformSierpinskigasket*//*numberofrecursivestepsgivenoncommandline*/#include#include/*initialtriangle*/GLfloatv[3][2]={{-1.

8、0,-0.58},{1.0,-0.58},{0.0,1.15}};intn;voidtriangle(GLfloat*a,GLfloat*b,GLfloat*c)/*displayonetriangle*/{glVertex2fv(a);glVertex2fv(b);glVertex2fv(c);}643附录A实例程序voiddivide_triangle(GLfloat*a,GLfloat*b,GLfloat*c,intm){/*trianglesubdivisionusingvertexnumbers*/GLf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。