- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分形图形学实验指导
实验一 二维空间上的分形图形生成
实验目的
Mandelbrot集与Julia集的计算机实现
掌握用L系统语言生成分形
实验内容及步骤
编写程序生成Mandelbrot集
在复迭代中影响最大的当属迭代z→z^2+c,实际上它只是形式更一 般的复解析迭代z_(n+1)=F(z_n)+c的一种, F是一个非线性函数。显然z→z^2+c也是最简单的一种,它 在复迭代中的地位相当于逻辑斯蒂映射x_(n+1)=ax_n(1- x_n)在实迭代中的地位(见第八章)。
考虑一般形式的F,令z=x+iy,c=c_( X)+ic_(Y),其中i表示虚数,i=SQRT(-1)。分离实部与虚部,具体化迭代关系便有:
x→f(x,y)+c_(X),y→g(x,y)+c_(Y).
通常所说的M集是迭代二次函数z→z^2+c产生的,此函数具 体化就是
x→x^2-y^2+c_(X),y→2xy+c_(Y).
其中z=x+iy,c=c_(X)+ic_(Y ),以横轴x记录实数的实部,以纵轴y记录实数的虚部。M集合实际上是常数c=(c_(X),c_(Y))构成的图象。让 c从屏幕左上角开始变化,逐行增加,一直变到屏幕右下角。如果取的区域是200×2 00,则一共要计算40,000个点,把计算的结果用不同的颜色标记下来,就得到一幅图象,这 就是M集。对于不同的c值,如何得到表征迭代性质的不同的结果呢?
容易知道,无穷远处肯定是迭代的一个吸引子,即对于复平面上相当多的初始条件,迭代最终都跑到无穷远处。但研究发现,在原点附近还存在一个奇特的区域,在迭代过程中此区域永远不会跑掉。在非严格的意义上,这个不变的集合就是M集,我们的主要任务就是画出这个集合的边界——实际上边界是分形曲线,极其复杂,M集图象的全部魅力就在这里。
在复平面上,我们以原点(0,0)作为参考点,观察迭代过程是否远离原点,以及逃离原点的速度如何。为此规定一个距离函数 D=x^2+y^2,
其实D有许多不同的取法,以上取法是最普通的。可以看出,如果D较大,表 明迭代点离原点较远,如果D较小,表明迭代点离原点较近。假设对于任何一个 c,迭代都从(x_0,y_0)=(0,0)开始,我们观察迭代点列
(x_1,y_1),(x_2,y_2),(x_3,y_3),… ,(x_(100),y_(100)),…
的变化状况。每一次都计算一下D值,即该点与原点(0,0)的距离(为方便计,这里 实际上计算的是距离的平方)。取一个参考距离R,不妨取得大一些,比如R =40(实际上取20就足够了)。现在想知道迭代多少次后实际的距离D大于R 。在迭代过程中如果D小于R,则继续让计算机迭代,要规定一个上限, 比如300次。如果迭代了300次后结果仍然不跑掉(即D仍然小于R),则可以近 似认为此点属于M集合。
对于迭代次数小于300次的情况,如果迭代10次D就大于R,则标记c 点为白色;如果迭代35次D开始大于R,则标记c点为红色;如果迭代 110次D开始大于R,则标记c点为蓝色,等等。
编写程序生成Julia集
一个M集可以对应无数种J集,实际上M集就是所有J集的浓缩 。M集不同部位的形状,反映了对应于该处的J集的形状,于是用M集 可以对J集进行分类,至少在计算机图形学的层次上可以这样说。
计算J集时,初始迭代点就不能总取(0,0)了,而是要根据实际位置取实际的 (x,y)坐标值。仍以迭代z→z^2+c为例说明。先取 定一个c值,比如c=(1.0221,0.2433),迭代关系化为
x→x^2-y^2+1.0221,y→2xy+0.2433.
从屏幕左上角算起,逐行计算,一直算到屏幕右下角。当然,也可以不取整个屏幕那么大,只选一个200×200的小区域做。
标色的原理与上面讲M集合时完全类似,此略。改变常数c的取值,可以得到 各式各样的J集。
比较M集与J集的区别与联系
在源程序中,M集与J集的计算方法十分相似,只需改变两处语句就可以互换为对方。
初始迭代点 迭代关系 说明 M集 x0:=0;y0:=0; x1:=f(x,y)+p0;y1:=g(x,y)+q0; p_0,q_0不断变化 J集 x0:=p0;y0:=q0; x1:=f(x,y)+c_X;y1:=g(x,y)+c_Y; /TD c_(X),c_(Y)固定不变
编写程序用L系统语言生成分形图形
编写程序生成柯赫曲线:初始图形是一条线段,生成过程是将线段中间1/3向外折起。程序伪码如下:
KochCurve { ;柯赫曲线
Angle 6 ;角度增量是60°
Axiom F ;初始图形是一单位线段
F=F+F-
您可能关注的文档
最近下载
- 铃木船外机 DF325A 350A 中文维修手册.pdf
- CRM二期-高阶蓝图规划 V0.98-德邦物流.pptx VIP
- 总承包项目的风险分析与防范措施.docx VIP
- 教育培训机构劳动合同范文(合同范本).docx VIP
- 海航旅游CRM项目-高阶蓝图及详细设计汇报版V1.7.pptx VIP
- NY_T 2194-2012 农业机械田间行走道路技术规范.pdf VIP
- 盘扣式高支模专项施工方案.doc VIP
- 红岭高一开学考试卷语文.pdf VIP
- SXRCCB_ITSP_信息科技架构蓝图规划_应用架构分册_V0.54_20150203.pptx VIP
- 2025年年天津卷高考试题(含答案)(精校版).docx VIP
文档评论(0)