计算机图形学 分形图生成

计算机图形学 分形图生成

ID:20256744

大小:124.00 KB

页数:6页

时间:2018-10-11

计算机图形学  分形图生成_第1页
计算机图形学  分形图生成_第2页
计算机图形学  分形图生成_第3页
计算机图形学  分形图生成_第4页
计算机图形学  分形图生成_第5页
资源描述:

《计算机图形学 分形图生成》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验六分形图的生成班级08信计2班学号20080502084姓名吴涛分数一、实验目的和要求:1、掌握希尔宾斯基三角形和JuliaSet(茱莉亚集)的基本原理。2、熟悉两个图形的生成算法。3、掌握希尔宾斯基三角形和和JuliaSet(茱莉亚集)的绘制.。4、提高分形图形生成的理解应用能力。二、实验内容:1、对于第一个图形在平面内随机的设置种子,并由此而设定三角形的三个顶点。形成初始化模式后,绘制三万个点,使规则传递下去。2、对于第二个图形则运用逃逸时间法后设定一个常数c的值。3、对两图形分别进行分析对比其局部与整体的

2、自相似性。三、实验结果分析:1、该程序实现了递归算法和逃逸时间法的图形绘制2、比较每一小部分与整体的关系:图形的层次是无限的、分形往往可以从局部“看出”整体、虽然看上去十分复杂,但其背后的规则却是相当简单。四、程序代码:1、JuliaSet(茱莉亚集)的程序代码为:#include#include//定义复数及乘、加运算//定义复数structCOMPLEX{doublere;doubleim;};//定义复数“乘”运算COMPLEXoperator*(COMPLEXa,C

3、OMPLEXb){COMPLEXc;c.re=a.re*b.re-a.im*b.im;6c.im=a.im*b.re+a.re*b.im;returnc;}//定义复数“加”运算COMPLEXoperator+(COMPLEXa,COMPLEXb){COMPLEXc;c.re=a.re+b.re;c.im=a.im+b.im;returnc;}//主函数voidmain(){//初始化绘图窗口initgraph(640,480);//绘制JuliaSet(茱莉亚集)COMPLEXz,c;c.re=-0.75,c.i

4、m=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);z.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,(k>=180)?0:HSLtoRGB((float)((k<<5)%360),1.0,0.5));}6}//按任意键退出getch();cl

5、osegraph();}输出的结果为:2、希尔宾斯基三角形为:#include#include#includevoidmain(){srand((unsigned)time(NULL));//设置随机种子POINTP[3]={{320,50},{120,400},{520,400}};//设定三角形的三个顶点POINTp={rand()%640,rand()%480};//随机产生当前点6//初始化图形模式initgraph(640,480);//绘制三万个

6、点intn;for(inti=0;i<=30000;i++){n=rand()%3;p.x=(p.x+P[n].x)/2;p.y=(p.y+P[n].y)/2;putpixel(p.x,p.y,GREEN);}//按任意键退出getch();closegraph();}运行结果为:63、自相似图形程序:#include#include#include#includevoidstar1(intx,inty,intr);voidstar2(

7、intx,inty,intr);voidmain(){intgraphdriver,graphmode,x,y,r;graphdriver=DETECT;initgraph(&graphdriver,&graphmode,"");setcolor(LIGHTMAGENTA);star1(160,160,80);getch();star2(480,320,80);getch();}voidstar1(intx,inty,intr){if(r>0){star1(x-r,y+r,r/2);star1(x+r,y+r,r/

8、2);star1(x-r,y-r,r/2);star1(x+r,y-r,r/2);bar(x-r,y+r,x+r,y-r);}}voidstar2(intx,inty,intr){if(r>0){star2(x-r,y+r,r/2);6star2(x+r,y+r,r/2);star2(x-r,y-r,r/2);star2(x+r,y-r,r/2);recta

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

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

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