欢迎来到天天文库
浏览记录
ID:20249895
大小:101.50 KB
页数:4页
时间:2018-10-08
《计算机图形学--分形图生成》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六分形图的生成班级08信计2班学号20080502074姓名付洋杰分数一、实验目的和要求:1、掌握希尔宾斯基三角形.和茱莉亚集的基本原理。2、熟悉两个图形的生成算法。3、掌握希尔宾斯基三角形.和茱莉亚集的生成.。4、提高分形图形生成的理解应用能力。二、实验内容:1、对于第一个图形在平面内随机的设置种子,并由此而设定三角形的三个顶点。形成初始化模式后,绘制三万个点,使规则传递下去。2、对于第二个图形则运用逃逸时间法后设定一个常数c的值。3、对两图形分别进行分析对比其局部与整体的自相似性。三、实验结果分析:1、该程序实现了递归算法和逃
2、逸时间法的图形绘制2、比较每一小部分与整体的关系:图形的层次是无限的、分形往往可以从局部“看出”整体、虽然看上去十分复杂,但其背后的规则却是相当简单。四、程序代码:1、希尔宾斯基三角形为:#include#include#includevoidmain(){srand((unsigned)time(NULL));//设置随机种子POINTP[3]={{320,50},{120,400},{520,400}};//设定三角形的三个顶点POINTp={rand()%640,rand
3、()%480};//随机产生当前点//初始化图形模式initgraph(640,480);//绘制三万个点intn;for(inti=0;i<=30000;i++){n=rand()%3;4p.x=(p.x+P[n].x)/2;p.y=(p.y+P[n].y)/2;putpixel(p.x,p.y,GREEN);}//按任意键退出getch();closegraph();}运行结果为:2.茱莉亚集的生成图形程序代码:#include#include///////////////////////
4、////////////////////////////定义复数及乘、加运算///////////////////////////////////////////////////定义复数structCOMPLEX4{doublere;doubleim;};//定义复数“乘”运算COMPLEXoperator*(COMPLEXa,COMPLEXb){COMPLEXc;c.re=a.re*b.re-a.im*b.im;c.im=a.im*b.re+a.re*b.im;returnc;}//定义复数“加”运算COMPLEXoperator+
5、(COMPLEXa,COMPLEXb){COMPLEXc;c.re=a.re+b.re;c.im=a.im+b.im;returnc;}///////////////////////////////////////////////////主函数/////////////////////////////////////////////////voidmain(){//初始化绘图窗口initgraph(640,480);///////////////////////////////////////////////////绘制JuliaSe
6、t(茱莉亚集)/////////////////////////////////////////////////COMPLEXz,c;c.re=-0.75,c.im=0;//设置迭代初值intx,y,k;//定义循环变量for(x=0;x<640;x++){for(y=0;y<480;y++){z.re=-1.6+3.2*(x/640.0);4z.im=-1.2+2.4*(y/480.0);for(k=0;k<180;k++){if(z.re*z.re+z.im*z.im>4.0)break;z=z*z+c;}putpixel(x,y
7、,(k>=180)?0:HSLtoRGB((float)((k<<5)%360),1.0,0.5));}}//按任意键退出getch();closegraph();}4
此文档下载收益归作者所有