基于迭代函数系统的分形树模拟

2020-12-18 04:17廖原马燕
关键词:分形分支树枝

廖原 马燕

摘  要: 研究了迭代函数系统(IFS)的各个参数对生成分形图形的影响,在拼贴方法基础上提出了一种设计IFS码的高效方法,总结了调整分形图形的策略,对IFS码作微小调整,模拟植物生长过程中由风力、光照等因素引起的树枝弯曲程度和树叶疏密的变化。

关键词: 迭代函数系统(IFS); 图形学; 分形

中图分类号: TP391.41    文献标志码: A    文章编号: 1000-5137(2020)05-0541-06

Simulation of fractal tree based on iteration function system

LIAO Yuan, MA Yan*

(College of Information, Mechanical and Electrical Engineering, Shanghai Normal University, Shanghai 201418, China)

Abstract: In this paper the influence on the fractal graphics with the change of iteration function system (IFS) parameters was studied respectively.An efficient algorithm for designing IFS codes based on collage method was proposed and the strategies for regulating fractal graphics were summarized.Lastly,a strategy for adjusting IFS codes was presented,which was able to imitate the changes of branch bending and density of the leaves caused by wind and illumination during the plant growth process.

Key words: iteration function system (IFS); graphics; fractal

0  引  言

自然界中存在很多具有自相似性的事物,例如云朵、海浪、雪花、植物等,可以通過分形描述它们。分形在任意小的尺度上都具有精细的结构,可用简单的规则表示较复杂的结构。将分形应用于计算机图形学,可用较少的语言精准地描绘细节被放大的图形,其常见的方法有:L-系统、粒子系统、迭代函数系统(IFS)等[1]

植物是地理信息系统、虚拟现实、园林设计等领域的研究对象,是计算机图形学的重要研究课题[2]。迭代函数系统是绘制植物分形图形的主要方法之一,前人已做了不少研究。李庆忠等[3]提出了一种通过跟踪仿射变换点对枝干和树叶自然着色的方法;刘芸等[4]通过加入风力影响因子,模拟了自然条件下的沙丘植被生长状况;李彩云等[5]分析了IFS的各个参数对生成分形树的影响,并通过拟仿射变换分形图形,生成了多片叶瓣的图形;刘娟等[6]提出了一种引入随机因子绘制不同形态枫树的方法。

本文作者分析了IFS系统各个参数对生成图形的影响,总结了生成分形树的参数调整策略,根据需求有针对性地修改参数,能够精准可控地模拟生长过程中的树木形态变化,以及由风、光照等因素引起的树枝弯曲程度和树叶疏密的变化。本研究可模拟不同的植物,可应用于虚拟场景、动画制作、景观设计等领域。

1  IFS

1.1 仿射变换

IFS由一个完备度量空间(Xρ)和一个有限的压缩映射集Wn及相应的压缩因子snn=1,2,…,N所组成,每个Wn有一个伴随概率pn,0<pn<1且=1。压缩映射集Wn是由缩放、选择、错切、平移得到的仿射变换,采用直角坐标系表示的变换形式如下:

其中,ijklmn为实数[7]

1.2分形树IFS的计算

用拼贴的方法建立IFS模型,模拟有分形特征的自然植物。首先确定完整图形(图1(a))由哪些小部分构成,然后用一个长方形区域覆盖完整图形,每一个子图用一个平行四边形区域覆盖(图1(b)),最后通过这些区域的形状、位置关系,计算出IFS的参数值[1]

由于分形图形是经多次迭代计算得到,需要多次调整IFS的参数值,以绘制达到预期形状的分形树。本研究给出一种较为简单高效的IFS参数设计方法:

通过对原图形的缩放和旋转,确定植物的大致形状。每个四边形代表一个压缩映射,其中的点通过同一个仿射变换得到。为了更好地模拟植物形态,在确定了大概树形之后考虑树枝、树叶形状,对IFS参数进行细微调整。

仿射变换用矩阵相乘的结果表示为:

式(1)与式(2)中的参数一一对应[8],即:

其中,rs表示沿x轴、y轴方向缩放倍数;θφ表示xy轴逆时针方向旋转角度;mn表示沿xy轴方向平移距离。

以图1为例,W1W2对应的树干部分由原图形x轴方向大幅缩小得到,因此和其他部分相比,绘制树干部分时,重合的点较多,分配给W1W2的概率可以较少,可以设置p1=p2=0.05;W3W4W5的概率大致相同,在保证=1的前提下,可以设置p3=p4=p5=0.3。

2  参数调整策略

2.1各参数的主要影响

树的形状特征决定了θφ的取值一般在。由式(2)可知,il为正数。由式(3)和(4)可知,当i增大时,r增大,|θ|减小;当|k|增大时,r增大,|θ|增大。由式(5)和(6)可知,当|j|增大时,s增大,|φ|增大;当l增大时,s增大,|φ|减小。参数mn是平移参数,平移的距离为参数乘以放大倍数。

W1W2对应树干部分,θφ一般取0,因此,主要通过改变il调整树干粗细和高度。W3W4W5分别表示中间、左侧、右侧的小树枝,同时调整W3W4W5的参数n,使分支在合适的高度。

W3的参数i增大时,每个中间分支的x方向缩放倍数变大,x轴逆时针旋转角度变大,树枝的枝叶都更加舒展,向左倾斜的角度减小,分支横向的缩放倍数较倾斜角度变化更为明显(图2(a))。

W3的参数|j|增大时,每个中间分支的y方向縮放倍数变大,y轴逆时针旋转角度减小,树枝的枝叶都更加细长,最大中间分支向左倾斜的角度增大,每个分支都向左弯曲(图2(b))。

W3的参数|k|增大时,每个中间分支的x方向缩放倍数变大,x轴逆时针旋转角度变大,树枝的枝叶都更加舒展,最大中间分支向左倾斜的角度增大,每个分支都向左弯曲,中间最大分支的倾斜角最明显(图2(c))。

W3的参数l增大时,每个中间分支的y方向缩放倍数变大,y轴逆时针旋转角度变大,树枝的枝叶都更加细长,向左倾斜的角度减小,中间分支的长度变化更加明显。同理,若参数l减小,树枝变短(图2(d))。

W4W5的原理与分析过程与之类似,增大某参数的绝对值引起的分形树主要变化如表1所示。

根据上述拼贴、参数调整方法得出的IFS如表2所示,可以较好地模拟一棵树的形态。

2.2结果导向的参数设置

不同生长条件下,同种植物的形态不尽相同,在不同时刻,同一棵树的形态也有变化,对参数进行微小改动可以更好地模拟植物形态。

四季变换过程中,一棵树的形态变化主要体现在树叶萌芽、茂盛再到凋零的过程,可逐渐调整W3W4W5的参数i对其进行模拟。

风中,树枝的弯曲程度、树叶和树枝的夹角随着风力增大而变大,可随风力增大,逐渐增大W3的参数|j|,以此改变树枝的弯曲程度,同时适当减小W3的参数l,以调整枝叶长度。

单侧光照条件下,树两侧树叶疏密程度不同。若左侧光照优于右侧,左侧枝叶更繁茂,同时,由于向阳性,右侧树枝与树干夹角较小,可通过增大W4的参数i,减小W5的参数|k|实现。同理,若左侧光照较好,可适当增大W5的参数i,减小W4的参数|k|

3  参数调整策略的应用

3.1绘制示例

增大W3W4W5的参数i,树叶舒展,可以体现生长过程中树叶形态的变化。图3给出了W3W4W5的参数i不同、其他IFS参数(同表2)均相同时的分形树。

适当调整参数W3的参数jl,可以绘制出一棵树在不同风力环境的形态。图4给出了W3的参数jl不同、其他IFS参数(同表2)均相同时的分形树。

在增大W3W4W5的參数i的基础上,减小W5的参数|k|,模拟树左右两侧树叶生长过程中由光照不均匀而造成不同的展开程度的情况。图5给出了W4的参数iW5的参数k不同,其他IFS参数(同图3(c))均相同时的分形树。

3.2颜色改进

仿射变换W4W5得到的点属于树干部分,如果某点由仿射变换W4W5得到,那么该点颜色设置为棕色;如果某点的上一次迭代变换是仿射变换W4W5,那么该点属于树的3个大分支,颜色设置为浅棕色;以此类推,越靠近顶端,颜色越浅,最终得到一棵颜色与真实树较为接近的分形树。按照树木因生长而改变的形态,修改绘制图形的颜色,可以达到更好的效果。

4  结  论

本文作者分析了IFS的各个参数对生成分形树的作用,提出了一种参数设计方法,可根据需求有针对性地改变IFS参数,较为准确地反映了不同环境中的树木形态。本方法有以下优势:1) 计算高效,仿真效果良好,绘制的树细节精细;2) 可以根据虚拟环境状况实时对树木的形态、颜色进行调整,符合植物生长规律;3) 考虑了风力、光照等影响因素,使模拟效果更加具有真实感。

参考文献:

[1] 王昱哲.基于IFS分形树的模拟 [J].西安科技大学学报,2016,36(6):894-898.

WANG Y Z.Simulation of fractal tree based on IFS [J].Journal of Xian University of Science and Technology,2016,36(6):894-898.

[2] 陈东方,吴国红.基于带参IFS的3D分形树及其摇曳形态的实现 [J].计算机与现代化,2007(9):9-11.

CHEN D F,WU G H.3D fractal tree at swing based on IFS inline parameters [J].Computers and Modernization,2007(9):9-11.

[3] 李庆忠,韩金姝.基于IFS的树木形态模拟真实感的研究 [J].计算机技术与发展,2005,15(7):86-88,92.

LI Q Z,HAN J S.Study of realistic tree simulation based on IFS [J].Microcomputer Development,2005,15(7):86-88,92.

[4] 刘芸,张燕.基于分形与图形学的自然条件下沙丘植被模拟 [J].辽宁石油化工大学学报,2017,37(3):58-63.

LIU Y,ZHANG Y.Simulation of dune vegetation under natural conditions based on fractal and graphics [J].Journal of Liaoning Shihua University,2017,37(3):58-63.

[5] 李彩云,郑红婵,林增耀.基于迭代函数系统的分形植物模拟 [J].应用数学进展,2018,7(1):128-138.

LI C Y,ZHENG H C,LIN Z Y.Simulation of fractal plant based on iteration function system [J].Advances in Applied Mathematics,2018,7(1):128-138.

[6] 刘娟,胡杰,张权义,等.基于随机分形的树木(枫树)可视化研究 [J].山东农业大学学报(自然科学版),2020,51(3):495-499.

LIU J,HU J,ZHANG Q Y,et al.Studyonvisualization of maple tree based on random fractal [J].Journal of Shandong Agricultural University (Natural Science Edition),2020,51(3):495-499.

[7] 李曉燕.IFS码图像生成算法 [J].华中师范大学学报(自然科学版),1996,30(4):402-406.

LI X Y.Image generation algorithm of IFS code [J].Journal of Central China Normal University(Natural Sciences),1996,30(4):402-406.

[8] 史丽敏,李玉红,张丽.获取自然景物IFS码的交互式系统环境建立 [J].沈阳化工大学学报,2012(1):81-83.

SHI L M,LI Y H,ZHANG L.Establishment of interactive system environment for obtaining IFS code of natural scene [J].Journal of Shenyang University of Chemical Technology,2012(1):81-83.

(责任编辑:包震宇)

猜你喜欢
分形分支树枝
猴叔叔剪树枝
感受分形
巧分支与枝
分形之美
树枝
分形——2018芳草地艺术节
一类拟齐次多项式中心的极限环分支
分形空间上广义凸函数的新Simpson型不等式及应用
没有一只鸟儿害怕树枝断裂
会跑的树枝