- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章节 迭代函数系统算法
参考书:《分形算法与程序设计》 * 第 4 章 迭代函数系统算法 4.1 混沌游戏 4.2 迭代函数系统 4.3 相似变换与仿射变换 4.4 IFS码 4.5 Sierpinski垫片的IFS生成 4.6 拼贴与IFS码的确定 4.7 IFS植物形态实例 4.8 复平面上的IFS算法 混沌游戏 4.1 给定平面上三点A, B, C。再任意给定初始点Z0 , 做下列迭代。 ? ? ? í ì + + + = + , 2 / ) ( , 2 / ) ( , 2 / ) ( 1 C Z B Z A Z Z n n n n 当掷出的硬币呈正面 当掷出的硬币呈反面 当掷出的硬币呈侧面 迭代函数系统 4.2 迭代函数系统(Iterated Function System,IFS)是分形理论的重要分支 。它将待生成的图像看成是由许多与整体相似的(自相似)或经过一定变换与整体相似的(自仿射)小块拼贴而成。 相似变换与仿射变换 直观上看:相似变换是指在各个方向上变换的比率必须相同的一种比例变换,仿射变换是指在不同的方向上变化的比率可以不同的一种比例变换。 4.3 相似变换:如果对于任意两点A、B,以及对应点A’、B’,总有A’B’=k·AB(k为正实数),那么,这个变换叫做相似变换,实数k叫做相似比。 仿射变换:x’=ax+by+e y’=cx+dy+f 其中a,b,c,d,e,f为仿射变换系数。 4.4 IFS码 用多个仿射变换式表达一个图象w1,w2,w3,……,使用每一个仿射变换式的概率p可以不同,一般面积越大,p值越大。于是,只要获得a,b,c, d,e,f,p( IFS码)的值便可以得到要表达的图形。 x’=a1·x+b1·y+e1 y’=c1·x+d1·y+f1 w1 x’=a2·x+b2·y+e2 y’=c2·x+d2·y+f2 w2 x’=a3·x+b3·y+e3 y’=c3·x+d3·y+f3 w3 p1 p2 p3 p1+p2+p3=1 4.5 Sierpinski垫片的IFS生成 由于生成的三个小三角形的面积相等,所以我们可以让w1、w2、w3出现的概率相同或相近。 x’=0.5x y’=0.5y x’=0.5x+0.5 y’=0.5y x’=0.5x+0.25 y’=0.5y-0.5 x’=0.5·x+0·y+0 y’=0·x+0.5·y+0 x’=0.5·x+0·y+0.5 y’=0·x+0.5·y+0 x’=0.5·x+0·y+0.25 y’=0·x+0.5·y-0.5 w1 w2 w3 4.5 Sierpinski垫片的IFS生成 标题: IFS生成算法 参数: n(迭代次数) m[ ](存储IFS码值) 变量:a,b,c,d,e,f,p(IFS码变量) 函数: Pset(x,y) (画点函数) Rand(随机函数) 算法:IFS BEGIN //IFS码赋值 m[0,0]=0.5; m[0,1]=0; m[0,2]=0 m[0,3]=0; m[0,4]=0; m[0,5]=0 m[0,6]=0.333 m[1,0]=0.5; m[1,1]=0; m[1,2]=0 m[1,3]=0.5; m[1,4]=0.5; m[1,5]=0 m[1,6]=0.333 m[2,0]=0.5; m[2,1]=0; m[2,2]=0 m[2,3]=0.5; m[2,4]=0.25; m[2,5]=0.5 m[2,6]=0.334 n=6000 WHILE n0 p=Rand SWITCH(P) CASE IS=m[0,6] a=m[0,0]; b=m[0,1]; c=m[0,2] d=m[0,3]; e=m[0,4]; f=m[0,5] BREAK CASE IS=(m[0,6]+m[1,6]) a=m[1,0]; b=m[1,1]; c=m[1,2] d=m[1,3]; e=m[1,4]; f=m[1,5] BREAK 4.5 Sierpinski垫片的IFS生成
文档评论(0)