本栏目责任编辑:李桂瑾 多媒体技术及其应用 基于MATLAB的分形仿真研究 黄小虎,胡清,黄杰 (广东工业大学信息工程学院,广东广州510006) 摘要:研究重点是用MATLAB编程语言来实现分形图形。如应用分形几何学中的IFS系统理论和L系统理论,用MATLAB语言生 成具有自相似特征的、精美的分形图案。为地貌描述、生物学的仿真研究、艺术设计等领域提供了新的方法。 关键词 分形:计算机图形学:IFS系统:L系统 中图分类号:TP391 文献标识码:A 文章编号:1009—3044(2007)09—20847—03 . Research of Fractal and lmitate Based on Matlab HANG Xiao—hu,HU Qing,HUANG Jie (School of Information Engineering,Guangdong University of Technology,Guangzhou 510006,China) Abstract:The center point is drawing fractal graph by using MATLAB language、A series of beautiful fractal patterns with self-similariy tstructure are obtained by using MATLAB programming,which based on IFS and L system theory in Geometry.The results supply new method for the portrayal of land S appearance,imitate research of Biology,artistic design field,and SO on. Key words:factl;computer garaphics;IFS system;L system 1引言 分形图形是当代计算机图形学和分形理论相结合的产物,它 对于一个比较复杂的图形,需要多个不同的仿射变换来实 现,仿射变换族I(1).11控制着图形的结构和形状,由于仿射变换的形 式是相同的.所以不同的形状取决于仿射变换的系数。另外,仿射 是把自然界中具有分形特征的物体映像处理成新的数字化图像, 能够充分反映自然现象的自相似特征。这些是传统数学所无法表 达的。 变换族I(1) 1中,每个仿射变换被调用的概率不一定相同,这就要引 进一个新的量.即仿射变换(1)被调用的概率P。从而,6个仿射变 自然界的图形可分为二大类。第一:有特征长度的图形,可用 欧几里德几何学来描述,如房屋、汽车、足球等;第二:是没有特征 长度的图形,如海岸线、云彩等 1975年美国数学家Mandelbrot建 换系数(a,b ,d,e,f)和一个概率(p)便组成了IFS算法关键的部分即 IFS码。一般来讲(1)的概率P取决于仿射变换字图的面积,子图面 积越大.此子图所对应的仿射变换系数被选中的概率就越大,也 就是此子图对应的概率越大f3,41。 立了分形几何理论f11,分形就是那些没有特征长度的图形的总 称。若称集合F为分形集合,F最大的特性就是自相似性。确定性 自相似分形几何构造:开始于一个指定的几何形状,称为初始元。 然后使用一种模型代替初始元的每部分,该模型称为生成元。 用迭代函数系统,可以生成很多自然景观。那么,这样的图形 是如何通过程序进行控制的呢,从应用的角度去理解,那就是仿 若使用图1中的初始元和生成元.可以构造雪花形状或Koch 曲线。初始元中的每个直线段每次用四个相等线段代替。缩放因 子是1/3.所以分形维数D=ln4/ln3—1.296。每次初始元的线段长 度以413因子递增.因此当增加更多的细节后,分形曲线长度趋于 无限 射坐标变换.何谓仿射坐标变换,便是旋转,扭曲,平移三种效果的 迭加f51。IFS的基本出发点是:在仿射变换下,分形集的整体与局 部、局部与局部具有自相似结构,从而选定若干个把整体压缩到 局部、局部变换到局部的仿射变换进行随机迭代,得到各种各样 的分形集 在本文的仿真结果部分我们将利用上面介绍的IFS系 统用MATLAB语言去生成地貌特征。 3 L系统的工作原理及分形树的生成 3.1 L系统的工作原理 L系统是一种形式语言,已有许多种不同的L系统,这里只考 初始元 生成元 1 虑DOL系统.即“与上下文无关的确定的Lindenmayer系统”,在 该系统中.用确定的字符取代特定的字符。定义如下: 设V是一个字母表,V 表示由V中的字母所构成的单词的 全体集合。所谓V上的一个OL系统,就是一个有序的三元组 G=<V,W.P>,其中W∈V 是一个非空的单词,称为种子。P是生成 规则集合。一个生成规则一般记作a—x,其中a∈V称为该生成规 则的前驱,x∈V 称为该生成规则的后继。规定对任何字母a∈V, 至少存在一个非空的单词x∈V ,使a ,若对给定的前驱a EV, 没有明确指定生成规则,便自动认为生成规则a—a属于P。如果 对每个a∈V,有且仅有一个非空单词X∈V ,使a—x,则说该OL 系统是个D0L系统。 比如,令V=IF,+,一},种子W:F++F++F,并明确指定一条生成 2迭代函数系统(IFS系统) 2.1利用IFS系统生成图象的原理 迭代函数系统f21(Iterator Function System)是分形理论重要的 分支,也是分形图象处理中最有前景的领域之一。IFS系统将待生 成的图象看成是由许多自相似或自仿射小块拼贴而成。自相似通 过自相似变换来实现,白仿射通过自仿射变换来实现。 相似变换是指在各个方向上变换比率必须相同的一种比例 变换,仿射变换是指在不同方向上变化的比率可以不同的一种变 换。从直觉上看,相似变换可放大或缩小甚至旋转,但不变形;而 仿射变换可能会变形。当然,相似变换是仿射变换的特例。 r 0 , 、 仿射变换它的数学表达式为:口:{ 三竺 y c}其中(1)代表 x’c ’j 1 仿射变换,x和Y是变换前图形的坐标值,X 和Y 是变换后的图 规则:F_-+F—F++F—F那么从第一代种子开始,生成的下一代字符 串变为:F—F++F-F++F-F++F—F++F—F++F-F。这个过程可以重复 多次.而得出较为复杂的字符串。如果将这一枯燥的迭代过程加 以图形学的解释,便可据此产生丰富多彩的图形,设想一只乌龟 形坐标值;a,b,c,d,e,f是仿射变换系数。 收稿日期:2007—04-08 作者简介:黄小虎(1983一),男,湖南衡阳人,硕士研究生,主要研究方向为信号处理、智能控制;胡¥}(1962-)男,湖北人,副教授,博士,硕士生 导师,主要研究方向为控制网络理论及应用、复杂工业过程控制系统的优化与控制、分形理论及应用等;黄杰(1985一),男,湖南邵阳人,硕士 研究生.主要研究方向为电力电子待动。 咐 \ 多媒体技术及其应用 。 在平面爬行,其状态可用三个值来描述,记为(x,y,a),其中x,y为 本栏目责任编辑:李桂瑾 维普资讯 http://www.cqvip.com
乌龟所在的位置坐标.a为乌龟头的方向角。下面作详细解释: F:表示向前爬行固定距离d,倘若乌龟的初始状态为(x。,yO, ao),则经过F之后的状态(x,y,a)为:x=xo+d COS ao,y=y0+d sin ao, a—aoo d(2,4)=0.5;d(2,5)=2;d(2,6)=0; d(3,1)=--0.4;d(3,2)=0;d(3,3):l= d(3,4)=0.4;d(3,5)_0;d(3,6)=1; d(4,1)=一0.5;d(4,2)=0;d(4,3)=0; d(4,4)=0.5;d(4,5)=2;d(4,6)=1; figure( name . ========绘制分形地貌======= , NumberTitle off"1; . +;一:‘+’表示左转8角,则乌龟的初始状态(x0,yO,a0)经过‘+’ 之后的状态值(x,y,a)为x=X0,y=Y0 a=ao+8。同理可得‘一’表示右 转8角。 由此,如果我们令乌龟的初始状态(x。,Yo,ao)=(O,0,0),并且 hold on;box on;set(gca, xtick ,口); set(gca, ytick ,[]) xlabel( Please hit”space”Key to stop this program ̄ …. color , r , fontsize ,14) d:1,8=60.字符串W=F++F++F使乌龟爬过的轨迹呈等边三角形。 如图2 title( If you think the figure likes mountains,you may stop this program ,… 如果我们在此基础上再分支的观念,比如用 fontsize ,12, color , b ) while K>1: 符号“【”表示开始一个分支,而用“]’’表示返回最近 的分支点.则可据此产生树木的造型。 图2 3.2应用L系统思想构造分形树 pause(0.011: a=get(gcf, currentkey ); if stremp(a, space ); .’ 应用L系统的基本思想来构造分形数的思路 可解释为理想化的树枝生长过程:从一条树枝(根)开始,一年后发 出新的牙枝.而发过牙枝的枝干每年又都发新芽枝,这一生长规 律体现为数学序列:1,1,2,3,5,8,13,21,34,55,…。记该序列的 第n项为Fn。则有递推关系式: break; end for kh=1:20; k=round(rand(1) 31+1; T=reshape(d(k,l:4),2,2) ; C=[d(k,5);d(k,6)]; Z=T木Z+C: F +2=F l+F (n=l;2,3,…) (1) 根据L系统的基本思想.我们先建立二维树的数学模型:从 树干开始,然后沿着树干逐渐扩展到连接的树枝,再以递归的方 式进行同样的过程,该过程持续到最终分枝。为简明起见,在这一 模型中.每一树枝都化为一条直线,每次循环,树枝都被缩放,旋 转和平移到其父枝的新位置A216]。如图3所示。 zz(:,kh)=z; end plot(zz(1,hend),zz(2,hend), . , markersize ,…2, Erase— Mode , none ) end | } \;I { |~父枝 ;~一 二技生成 首汝生成 图3 二维树的生成过程 L系统是通过产生一系列字符串来描述分形树木图形特征. 该类灌木的L系统的原表达式为: L=<G,W,P> (2) 其中G是字符集,这里G={F,+,一,[,]};W是起始符号元,用 以确定字符串的初始状态,且W∈G,此处W=F,8='rr/8;P为该类 植物的生成规则集。这里 图4 4.2利用L系统生成规则生成分形树的仿真结果 function,ChaoticFractalTree; %Chaotic Fractal Tree %reference: %Constants: max sub branch=4: max——P_{F—F[+F]F[一 ,+一+,一一一,[一[;卜 } (3) 在生成规则中,通过递归过程的设计.即能产生预期的分形 植物图形。根据生成规则P.当前n代的字符串语言描述可用表1 说明 表1 n代字符串语言描述表 递归深度n 1 F L产生的字符串 F[+F]F[一F] subangle=3*pY4; ——2 max size=6; 1ength=50; branch.0 F[+F]F[一F][+F][+F[+F]F[--F]]F[+F] F[一F]F[+F]F[一F][一F][一F[+F]F[一F]] : %function call hold on makeBranch(200,300,branch_length,pi/2,max_size); title( please double click the mouse and redraw ) 表1中只列出了前3代的灌木字符串,到了第4代后.字符 串就很长,此处从略。后面我们将利用L’系统规则生成分形树。 set(gcf, ButtonDownFcn 。 t=get(gcf, if t(1)== %%Function SelectionType ) 4仿真实验结果 果。 function physiognomy; ‘ ’ 0 ;close; ChaoticFractalTree;end ) 4.1利用IFS系统原理用MATLAB语言生成地貌的仿真结 function makeBranch(start_x,start_y,leng,angl,siz); %Constants: max sub branch =4:.%用IFS方法生成的地貌【山脉] d=zeros(4,6);K=2;p=1;z=[0;0]; d(1,1)=0.5;d(1,2)=0;d(1,3)=0; d(1,4)=0.5;d(1,5)=0;d(1,6)=0; d(2,1)=0,5;d(2,2)=0;d(2,3)=0; 848 斑膣知识与技术 max_subangle=3 pi/4; _branch 1ength=50; if siz>O; z=startx+start y*i: _z_end=z+leng exp(i ang1); 维普资讯 http://www.cqvip.com
本栏目责任编辑:李桂瑾 plot([z,z_end], linewidth ,siz); subbranch=rand*(max_sub_branch,-1)+2; ~多媒体技术及其应用e 真实地貌相似的时候,可以人为的停止模拟过程。在一定程度上 branchlengthdimin=.5+rand/2; 可以说这是_个智能的过程;第二个是也是利用分形几何中的L 系统理论去.生成分形树,它是一个静态的过程。由于树木的形态 复杂,因此对于不同的描述对象,其生成规则也不相同。如果我 们采用较为复杂的形状而不是简单的直线段作为初始元,并通过 改变树枝的数量、大小、方向以及在父枝上的位置来建立不同树 种的模型,将会得到不同树木的图形。 end x=real(z_end); end y=imag(z_end); for k=0:subbranch; newLength=leng branchlengthdimin; —newAngle=angl+rand maxsubangle—maxsub angle/2; newSize=siz一1: makeBranch(end_x,end_y,newLength,newAngle,newSize); end end ■BH £- ^{ l E■躺 ‘删 稿榭 5结束语 分形几何与计算机图形学相结合而产生的分形图形学,加之 计算机仿真语言,可以为我们描述和重建自然景观如植物理论生 物学、实验观测生物学的仿真研究、地貌描述等方面提供了新的 研究方法,它不仅具有重要的科学和技术价值,而且还具有丰富 的美学意义。 参考文献: f1】胡多能,王京,张瑞秋,何沛然.分形图形与混沌图案的应 用IJ].计算机工程与设计,2007,28(4):893. f21孙博文.分形算法与程序设计——Visual C++实现[M】.北 京:科学出版社,2004.86—87. 『3]Martyn T.A new approach to morphing 2D affiBe IFS fractals IJ1.Computer&Graphics,2004,28(2):249—272. 『41Slawomir S Nikie1.Ture—color Images and Iterated Function 图5 Systems.Computer&Graphics.1998.22(5):635—640. 『51王兴元,刘波.基于3_D IFS.理论的自然景观模拟【JJ.计算 机科学,2003,30(11):61-69. 『6】李水根,吴纪桃.分形与小波『M】.北京:科学出版社, 2002.14】~149. 以上是把分形学与计算机图形学结合起来生成的分形图形 的两个例子,第一个是利用分形几何中的IFS系统理论去模拟地 貌,这是一个动态过程,当某一时刻生成的地貌满足你的需要,与 f上接第841页1 4转入POTOSHOP中制作 4.1图像文件导入 米”选按钮处单,确定图纸的单位一般选择“毫米”选按钮。 (2)在“图形方向”选项组中[1】,单选“纵向”按钮,将使图形的 顶部在图纸的短边。单选“横向”按钮.将使图形的顶部在图纸的 长边。而“反向打印”复选框,可设置是否使图形颠倒打印。通过这 3个选项的组合,可以实现0。,90。,180。和270。方向的打印。 (3)在“打印区域”选项组中,如果在“模型”命令PLOT,则出现 在Photshop中打开刚刚输出的文件,它的扩展名为.EPs,这 时弹出一个“栅格化通用EPs格式”的设置对话框,可以设置高 的“图形界限”选项,标示图形窗口中显示的区域:选择“窗口”按 钮,此时切换到绘图窗口中,可以指定一个区域的两个对角点或 输入坐标值来确定一个打印区域,从而将所要打印的图形包含在 打印区域内。如果在“布局”窗口输入命令PLOT,选择第一项是 “布局”按钮,就是在布局中设定的视口区域:“窗1:7”按钮如上。其 他按钮一般不选择。 (41在“打印比例”选项组的比例选项中,可以采用打印模型空 间的默认比例“按图纸空间缩放”:也可以从“比例”下拉列表框中 选择标准缩放比例,比例因子就显示在“自定义”框中。在“自定 义”文本框中也可以输入用户自定义的比例来指定打印比例,1毫 米等于1个图形单位 f5)在“打印偏移”选项组中,选中“居中打印”复选框使图形位 于图纸的中央位置。也可以在“x,Y”文本框中自定义打印原点,从 度、宽度及分辨率等等。如果是用于出版印刷,分辨率可以设置为 300像素/英寸,模式为“CMYK颜色”,若用于图纸打印,分辨率设 置为150像素/英寸,模式为“RGB模式”,其他则按缺省参数,然 后单击“好”按钮即可。 图像文件导入到Photshop后是一个透明背景的图层1,如果 图纸较大,若不仔细看,你可能认为没有将文件导入。然后新建一 个图层2,移动到图层1的下面,并用填充工具填充为白色,放大 后,就可以看到一个很好的完整图像了。如果你要输出平面设计 图,即可打印输出了。 4.2平面效果图的制作 现在大多数客户要求能够看到平面效果图,就可以在此基础 上继续制作了。首先,要准备好平面设计树木素材和模块填充图 案,其次,将每一个设计元素调入设计图,利用Photshop功能设计 平面图,如设置阴影、填充材质、图例准备等,可以满足设计方案 的要求。 在设计平面图的时候,完整的设计图纸并不能完全设计,其 中地被、建筑、道路可以在关闭Autocad的相关图层,然后单独输 出,调入Photshop利用图层“堆叠”完成图层的显示。如此可以绘 制一张二维彩色平面效果图了。 而使图形在图纸上沿x,Y轴方向移动。 (6)完成前面“打印”对话框的设置后,即可单击“确定”按钮执 行打印输出图形。但通常在在正式打印前,一般要通过预览观察 打印效果,如不合适则重新调整,这样可以避免纸张浪费。 单击“打印”对话框下方的“完全预览”按钮,则AutoCAD显示 实际的打印效果。AutoCAD显示出打印预览的效果后,可按Esc 或回车键的方式退出预览。 3-3打印输出 5结束语 总之.在Autocad环境下,利用软件提供的虚拟打印机,可以 输出用户要求各种规格的园林设计图纸。再利用Photoshop软件 的绘图功能.完成一张效果美观、符合客户要求的绿化平面效果 图了。 完成各种打印设置,并经打印预览确认设置正确.单击“打 印”对话框中的“确定”按钮,AutoCAD打印输出形保存到前面输 入的位置,文件扩展名为.EPs。 参考文献: 【1】赵东劲,刘元林.Autocad工程图样的打印输出【JJ.煤炭技术. 2006,25(1):120—123. 8.49
因篇幅问题不能全部显示,请点此查看更多更全内容