资源描述:
《图形学上机实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机图形学上机实验报告计算机科学与技术学院班级:CS13班学号:U姓名:指导教师:完成H期:2015/11/15实验一:kock分形雪花图案的绘制一、实验目的与要求目的:1.通过实验初步了解OPENGL。2通过上机编程掌握OPENGL的画图机理和OPENGL。要求:1.了解分形绘图的过程。二、实验内容以Kock曲线为例,说明分形图形是如何生成的。Kock曲线的初始生成元是一条直线段,生成规则是将直线段均分为三等分,首尾两端保持不变,中间用两端等长冃•互成60度角的直线段代替。迭代公式如下:{X0rX0+(X1-X0J/3X1+X0)
2、/2+(yO-y1)^
3、T/6rX0+2(x1-x0)/3fXly0ly0+(X1-y0)/31(0*°)/2±(X1・X0)^fT/6ly0+2(v1・v0)/3Iy1分别迭代1,3,6次,并记录结果。三、实验结果实验结果图如下:3-2三次分形四、体会通过这次实验了解到了分形系统的从图元到图形的形成过,分形在图形学的应川中,可以用來表示岩层、云、水、树、等。并且亲手实现了“雪花”的分形图形。通过迭代次数可控制图形的不同。掌握了分形系统的形成过程。完成了此次试验目的。五、源程序voiddrawline(ptptI,ptpt2)//绘制
4、线{g!Begin(GL_LINES);glVcrtcx2d(ptl.x,ptl.y);glVertex2d(pt2.x,pt2.y);glEnd();)voiddrawkoch(ptpt1,ptpt2,intn)//n为确定的迭代次数{ptpl,p2,p3,p4,p5;glColor3f(0.0,0.0,0.0);pl.x=pt1.x;pl.y=ptl.y;p2.x=pt2.x;p2.y=pt2.y;if(n==1){drawline(pl,p2);}if(n>l){p3.x=pl.x+(-pl.x+p2.x)/3;p3・y=pl.
5、y+(-pl.y+p2.y)/3;p4.x=pl.x+2*(-pl.x+p2.x)/3;p4.y=pl.y+2*(・p1.y+p2.y)/3;p5.x=(p4.x-p3.x)/2・(p4.y-p3.y)*sqrt(3.O)/2+p3.x;p5.y=(p4.y-p3.y)/2+(p4.x・p3.x)*sqrt(3.O)/2+p3.y;drawkoch(pl,p3,n・1);drawkoch(p3,p5,n-1);drawkoch(p5,p4,n-1);drawkoch(p4,p2,n-1);讦(n==0)exit(0);)voiddis
6、play(void){glClear(GL_COLOR_BUFFER_BIT);ptpl,p2,p3;pl.x=30;pl.y=30:p2.x=110;p2.y=3();p3.x=70;p3.y=30+40*sqrt(3.0);intn;do(〃循环改变迭代次数glClcar(GL_COLOR_BUFFER_BIT);printfC*请输入Koch雪花的迭代次数,或输入0退出:“);scanf("%d”,&n);drawkoch(p1,p3,n);drawkoch(p3,p2,n);drawkoch(p2,pl,n);glFlush(
7、);}while(n!=0);)intmain(intargc,char**argv){glutlnit(&argc,argv);glutInilDisplayMode(GLUT_SINGLEIGLUT_RGB);glutInitWindowPosition(50,100);glutInitWindowSize(500,400);glutCreateWindowC'KOCHCURVE");init();glutDisplayFunc(display);glutMainLoop();return0;实验二:星球环绕模型一、实验目的与要求
8、目的:1.通过实验初步了解OpenGL屮的深度测试缓存器算法。2通过上机编程掌握深度缓存和深度测量用法。要求:1.通过改写分子模型建立地月系统。2.耍求增加光照。3.设计好黄赤交也和旋转速度。二、实验内容分析原子系统,了解系统建立过程中的处标变换。在原了系统中进行改造,加上光照系统,并确立好光照位置。改变变化步长使地刀系统的各星体周期与真实周期一致。改变半径使FI地比为12.1.改变地球的运动轨迹运行面与黄道面成黄赤交角23.26度。川不同的材质使不同的星体呈现不同的颜色并加上和应的光照。四、实验结果实验结果图如下:3-1地月系统截图
9、一3-2地月系统截图二3・3地月系统截图二四、体会通过这次实验了解到了分形系统的从图元到图形的形成过,分形在图形学的应用中,可以用来表示岩层、云、水、树、等。并且亲手实现了“雪花”的分形图形。通过迭代次数可控制图形的不同