计算机图形学--分形图的生成.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验六分形图的生成

班级08信计2班学号20080502056姓名高金玲分数

一、实验目的和要求:

1、掌握分形图的根本原理,熟练其真正的数学内容,解释图形生成的过程。

2、通过对茱莉亚集、谢宾斯基三角形和贝塞尔集的设计,熟练掌握分形图的建立生成。

3、利用茱莉亚集、谢宾斯基三角形和贝塞尔集生成的图形直观了解分形图的内容与过程。

二、实验内容:

1、编程实现茱莉亚集和谢宾斯基三角形的生成图形算法,生成整体有限的图形。

2、进一步编写贝塞尔集生成图形的算法,将其功能放大。

3、将茱莉亚集、谢宾斯基三角形和贝塞尔集的生成图形在应用程序中实现具体的操作要求,观看其图形的结构。

三、程序执行与运行结果

1.茱莉亚集的生成图形程序代码:

#includegraphics.h

#includeconio.h

/////////////////////////////////////////////////

//定义复数及乘、加运算

/////////////////////////////////////////////////

//定义复数

structCOMPLEX

{

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+(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.im=0; //设置迭代初值

intx,y,k; //定义循环变量

for(x=0;x640;x++)

{

for(y=0;y480;y++)

{

z.re=-1.6+3.2*(x/640.0);

z.im=-1.2+2.4*(y/480.0);

for(k=0;k180;k++)

{

if(z.re*z.re+z.im*z.im4.0) break;

z=z*z+c;

}

putpixel(x,y,(k=180)?0:HSLtoRGB((float)((k5)%360),1.0,0.5));

}

}

//按任意键退出

getch();

closegraph();

}

运行结果:

茱莉亚集的生成图形

2.贝塞尔集的生成图形代码

#includegraphics.h

#includeconio.h

#defineWIDTH640

#defineHEIGHT480

#defineNUMPTS6

HDChdc;

floatanimpts[NUMPTS*2];

floatdeltas[NUMPTS*2];

voidInit()

{

for(inti=0;iNUMPTS*2;i+=2)

{

animpts[i]=(float)rand()/RAND_MAX*WIDTH;

animpts[i+1]=(float)rand()/RAND_MAX*HEIGHT;

deltas[i]=(float)rand()/RAND_MAX*4+2;

deltas[i+1]=(float)rand()/RAND_MAX*4+2;

i

您可能关注的文档

文档评论(0)

liuzhouzhong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档