一种基于非线性导数迭代的服装分形图案计算机生成方法与流程

文档序号:11865013阅读:605来源:国知局
一种基于非线性导数迭代的服装分形图案计算机生成方法与流程

本发明属于计算机分形图形与服装图案设计领域,尤其涉及一种基于非线性导数迭代的服装分形图案计算机生成方法。



背景技术:

目前分形图形的生成方法有很多种,除了经典的Mandelbrot集与Julia集方法外,牛顿迭代法也是广为应用的一种方法。

近年来,有不少人对牛顿迭代法进行了较为深入的研究,这些研究主要有两个目的,第一是提高收敛速度,第二是使计算更加简便。目前的主要改进方法有如下几种:如修正的牛顿迭代法、弦截法、基于抛物线差值多项式的迭代法、采用二阶泰勒展开的推广牛顿迭代法,以及平均牛顿法与中点牛顿法。

但以上改进方法主要是基于牛顿切线法中的导数近似计算方法,或者是基于收敛速度的提升而进行的改进,而基本的迭代形式和牛顿迭代法并没有太大的区别。而且对迭代算法的收敛性并无突出改进,因此应用上述算法产生的分形图形也比较单一。

本文则提出了一类完全不同于刘顿迭代法的新型迭代算法,该算法引入非线性导数函数,通过调节其柔化因子与迭代速率调节因子,使得改进后的迭代算法不仅具有很好的收敛特性,而且在生成分形图形方法上,能产生更加丰富而特别的图案。因此该方法更适合推广应用于寸衣、包与裙子的服装设计,具有更好的实用价值。



技术实现要素:

本发明的目的是提供一种基于非线性导数迭代的服装分形图案计算机生成方法,通过引入非线性导数函数并调节迭代速率因子与柔化因子,产生丰富多彩的迭代分形图形。该方法通过迭代速率因子与柔化因子的调节,不仅提高了迭代图形的生成速率,也改善了迭代算法的收敛性。

本发明所采用的技术方案是:一种基于非线性导数迭代的服装分形图案计算机生成方法,包括以下步骤:

步骤一:选取迭代函数,记为F(z),求取其导数,记为F′(z);

如选取F(z)=z5+1,则F′(z)=5z4

步骤二,选取迭代方式,并设置柔化因子与迭代速率调节因子;

本发明中提出一种基于非线性导数函数的迭代方式如下:

<mrow> <msub> <mi>z</mi> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>z</mi> <mi>n</mi> </msub> <mo>-</mo> <mi>k</mi> <mfrac> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mi>F</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mo>|</mo> <mi>F</mi> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>|</mo> <mo>+</mo> <mi>&epsiv;</mi> <mo>)</mo> </mrow> </mfrac> <mo>;</mo> </mrow>

其中为迭代函数F(z)的非线性导数函数,zn+1为第n+1次迭代的数值,而zn为第n次迭代的数值,k为迭代速率调节因子,ε为迭代柔化因子;

在本步骤中,需要选取合适的柔化因子ε与迭代速率调节因子k;选取原则在于:如果迭代速率过慢则增大k,减小ε;如果迭代速率过快则减小k,增大ε。

如可选取k=1.2,ε=0.8,进行迭代仿真,则迭代函数如下:

<mrow> <msub> <mi>z</mi> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>z</mi> <mi>n</mi> </msub> <mo>-</mo> <mn>1.2</mn> <mfrac> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mi>F</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mo>|</mo> <mi>F</mi> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>|</mo> <mo>+</mo> <mn>0.8</mn> <mo>)</mo> </mrow> </mfrac> <mo>;</mo> </mrow>

步骤三:进行迭代准备工作:包括设定图形视窗大小;设定复平面实部与虚部的最大变化范围;通过设定步长间隔来设置图案的分辨率;设置生成图案的基本循环;设置最大迭代次数nmax

设定视窗大小为10*10的正方形,则可选取复数平面实部与虚部的变化范围均为[-5,5],如果想设定图案中的点数100*100个点,则实部与虚部步长可设置为10/100=0.1;而最大迭代次数nmax可选为50;

第四步:利用步骤二中的迭代公式进行分形图案的主迭运算,并计算相邻两次迭代结果的差别,并设定误差界限,进行迭代结束跳出循环的判别;根据跳出循环的次数n来判断该点的迭代是收敛还是发散,如n=nmax则为发散,否则为收敛;通过n值的不同选取相应的颜色来为当前循环所指向的位置画点;

如定义△z=|zn+1-zn|,设置误差界限εb=0.001,则如果△z<εb或者n>nmax,则跳出循环,否则进行下一次迭代;

第五步,全部循环所代表的视窗内全部点着色绘图完毕后,查看生成图案的效果,如果不满意,则返回到第一步进行迭代函数与参数调换,直到得到满意的图案,然后转入到步骤六;

第六步,通过选取不同的迭代函数,得到不同的图案,在所有图案中选取满意图案,将其应用于服装设计。

本发明的有益效果是:本发明通过引入非线性导数函数来替代传统的牛顿迭代函数,并通过调节柔化函数中的迭代速率调节因子与柔化因子来产生丰富多彩的迭代分形图形,并应用于服装图案设计。该方法能够调节迭代速率从而加速分形图案的生成效率,同时通过调节柔化因子来改善迭代的收敛特性,从而产生更为丰富多彩的精美图案。本发明所提供一种计算机自动生成分形图案方法,能够广泛应用于雕塑、艺术品设计、服装设计、广告等行业,具有图案新颖且无法人工描绘仿制的优点。

附图说明

图1是本发明的总体流程图。

图2是本发明实施例中选取迭代函数为F(z)=z5+1得到的分形图案。

图3是本发明实施例中选取迭代函数为F(z)=z7得到的分形图案。

图4是本发明实施例方法应用于服装设计中的分形图案效果图。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体例子,对本发明进行进一步详细说明。一种基于非线性导数迭代的服装分形图案计算机自动生成方法,如图1所示,包括以下步骤:

步骤一:选取迭代函数,记为F(z),求取其导数,记为F′(z);

如选取F(z)=z5+1,则F′(z)=5z4

步骤二:设置柔化函数的柔化因子ε与迭代速率调节因子k;

本发明中提出一种基于非线性导数函数的迭代方式如下:

<mrow> <msub> <mi>z</mi> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>z</mi> <mi>n</mi> </msub> <mo>-</mo> <mi>k</mi> <mfrac> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mi>F</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mo>|</mo> <mi>F</mi> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>|</mo> <mo>+</mo> <mi>&epsiv;</mi> <mo>)</mo> </mrow> </mfrac> <mo>;</mo> </mrow>

如可选取k=1.2,ε=0.8,进行迭代仿真,则迭代函数如下:

<mrow> <msub> <mi>z</mi> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>z</mi> <mi>n</mi> </msub> <mo>-</mo> <mn>1.2</mn> <mfrac> <mrow> <mi>F</mi> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> </mrow> <mrow> <msup> <mi>F</mi> <mo>&prime;</mo> </msup> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mo>|</mo> <mi>F</mi> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> <mo>|</mo> <mo>+</mo> <mn>0.8</mn> <mo>)</mo> </mrow> </mfrac> <mo>;</mo> </mrow>

其中z1的初始值选取见第三步图形视窗的循环设置,循环中每一个点所代表的视窗位置,采用复坐标描述,即为z1的初始值。同时,转换到下一个点画图时,又重新进行初始值的设定。

步骤三:进行迭代准备工作,包含设定图形视窗大小,设定复平面实部与虚部的最大变化范围;通过设定步长间隔来设置图案的分辨率,设置生成图案的基本循环,设置最大迭代次数nmax

步骤四:利用步骤二中的迭代公式进行分形图案的主迭运算,并计算相邻两次迭代结果的差别,并设定误差界限,进行迭代结束跳出循环的判别。根据跳出循环的次数n来判断该点的迭代是收敛还是发散,如n=nmax则为发散,否则为收敛;通过n值的不同选取相应的颜色来为当前循环所指向的位置画点。

步骤五,全部循环所代表的视窗内全部点着色绘图完毕后,查看生成图案的效果,如果不满意,则返回到第一步进行迭代函数与参数调换,直到得到满意的图案,然后转入到步骤六。

最终得到的图形效果如附录图2所示。

步骤六,通过选取不同的迭代函数,得到不同的图案,在所有图案中选取满意图案,将其应用于服装设计。

选取迭代函数为F(z)=z7,最终得到的图案效果如图3所示。最后将该精美图案应用于女式长裙的服装设计中,如图4所示。可见由计算机分形所画出的图形具有独特的视角效果,能给服装图形带来传统手工绘制所无法比拟的效果。

仿真验证

根据上述案例与本专栏所提的设计方法,采用Matlab软件M语言进行仿真验证,得到的结果如图4所示,从而验证本专利方法是正确与有效的。

其程序如下:

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1