1. 引言
分形理论这一概念最早由Mandelbrot提出。经典分形有规则分形和复动力分形。规则分形如cantor三分集、Peano曲线、koch曲线、sierpinski垫片等 [1] [2] ,这样的分形集具有严格的自相似性,是非线性的。复动力分形指在复平面上的分形集合,广泛研究的代表集有Julia和Mandelbrot集,以下分别简称J集和M集。分形图形的生成算法主要有递归法、迭代函数系统法、牛顿法及逃逸时间算法 [1] [2] 等。复动力分形常用逃逸时间算法,该算法适用于计算二维复平面上的分形图。分形图的着色方案,是指对构成图像的所有点集赋予确定颜色的方法。常用的着色方案主要有三种:1) 双色法 [3] [4] [5] :图像色彩单调;2) 基于迭代次数着色 [3] [4] [5] :非逃逸区只有一种颜色,且逃逸区色彩缺乏过渡;3) 基于距离的着色方案 [3] [4] [5] :对于任一像素点,在迭代结束时,依据轨道点与原点的距离控制色彩,但是会出现逃逸区的最后一个轨道点距离原点的距离趋于无穷大的情况。用计算机程序绘制的分形图,营造出了一种充满生机和流动性的视觉体验 [6] 。因此分形图被广泛应用与印染、装饰、自然景物描述和防伪行业 [3] [6] [7] [8] 。
考虑到前面几种着色方案颜色过渡明显,可以采用颜色渐变算法让颜色间平和过渡。文章 [9] 提到的基于距离控制色彩变换的方法中用到区域划分法,该方法可以有效区分图形的内外结构,实现颜色的平缓过渡。但是该方法使用的轨道点会出现以下现象:复平面上的像素点,逃逸区,迭代结束时,轨道点与原点距离可能是无穷大,非逃逸区,迭代结束时,轨道点与原点距离可能很小。
基于以上方法带来的灵感,本文重点研究二维复平面上广义M-J集的绘制,提出了新的区域划分赋色的渲染方法,该方法是确定颜色总数n,随机产生一个小于n的整数n1,用前n1种颜色对非逃逸区着色,剩余颜色对逃逸区着色,且逃逸区和非逃逸区颜色过渡平缓。鉴于MATLAB软件强大的绘图功能,本文采用MATLAB的colormap函数,自定义map色图矩阵,对像素点着色。
2. 广义M-J集
Julia集是由法国数学家Gaston Julia和Pierre Faton在研究复变函数迭代理论基础上获得的。Julia集提供了一个看似很简单的过程却能产生很复杂的集合的非常引入注目的例证。在复平面C上,像
这样带有常数c的简单二次函数,保持参数c虚实部均不变,以复数z作为初始点经过简单的迭代过程改变z的虚实部,却能生成绚丽多彩的分形 [3] 。Julia集由复变函数迭代生成。同理,对于Mandelbrot集而言,依据
迭代时,将z的初始值定为
。依据
反复迭代可得到Mandelbrot集 [3] 。广义的M-J集,突破简单的迭代公式
,研究迭代式
,其中
为任一复平面上的解析函数,是由基本初等函数和常数经过有限次四则运算和复合运算得到的初等函数。
3. 逃逸时间算法
逃逸时间算法,主要用于生成复动力系统分形图形。下面给出绘制广义M-J集的逃逸时间算法的具体步骤:
a) 选定复解析函数,设置最大迭代次数即逃逸时间T和逃逸半径R,默认参数为
;
b) 绘制J集时,给出复平面上z的取值范围,即实部和虚部的范围(当绘制M集时,给出复平面上c的取值范围,即实部和虚部的范围),默认实部参数为
,虚部参数为
,给出实部和虚部的分辨率,默认参数为
;
c) 绘制J集时,固定复数c,针对二维平面上的像素点
,令初始值
(当绘制M集时,固定z的初始值
,针对像素点
,令
),然后依据迭代公式
反复迭代可得到轨道点序列
;
d) 如果z的模大于R,迭代结束;否则判断是否小于最大迭代次数T,如果小于,继续迭代,否则迭代结束。
由以上算法的实现过程可知,绘制图形的过程就是对屏幕映射区域的像素点进行逐一判断的过程,执行该算法能生成奇异的广义M-J集分形图。
4. 颜色渐变算法
颜色是可见光的一种视觉特性。基于深度学习的颜色恒常性算法研究得到越来越多的关注 [10] 。但是数据可视化的一个关键问题是如何运用不同的颜色来表达和区分不同的数据。计算机图形图像处理中有两种重要的原色混合系统,即红绿蓝(RGB)加色系统和青品红黄(CMY)减色系统 [11] 。本文使用红绿蓝(RGB)加色系统,采用等间距线性渐变法实现从一个颜色到另一个颜色的平和过渡。具体算法如下:
设起始颜色为A,终止颜色为B,需要用算法求出从A到B等间距渐变
次的中间位置的渐变颜色M,即在区间
上插入
个分点
,求每个分点i处的颜色
。分别代表起始色A和终止色B。为此,首先将A和B在RGB空间分解为红绿蓝分量,分别设为
。设渐变颜色
的红绿蓝分量分别为
。
5. 着色方法——区域划分法
着色方案 [12] ,是指对构成图像的所有点集赋予确定颜色的方法。针对复平面上每一个像素点
,逃逸区,迭代结束时,轨道点距离原点距离可能是无穷大,且非逃逸区,迭代结束时,轨道点距离原点距离可能很小,因此,本文重新定义了区域划分法,具体描述如下:1) 确定初始色图矩阵map,将该矩阵中相邻两个颜色等间距线性渐变N次,最终得到包含n种颜色的新色图矩阵N_map;2) 产生一个小于n之间的随机数n1,非逃逸区用前n1种颜色绘制,逃逸区用剩余n2种颜色绘制;3) 将复平面按逆时针方向等分成n1个区域,非逃逸区用新的色图矩阵N_map的前n1种颜色,依次控制每个区域的绘制色彩;将复平面按逆时针方向等分成n2个区域,逃逸区用新的色图矩阵N_map的后n2种颜色,依次控制每个区域的绘制色彩。这样可以有效区分非逃逸区和逃逸区颜色,且色彩过渡平缓。
其中初始色图矩阵map的构造,如:彩虹色、极光色及根据个人喜好自建map矩阵,然后将map矩阵中相邻两种颜色等间距渐变N次,得到新的色图矩阵N_map,总的颜色数n是颜色索引号I的最大值。表1显示各种着色方案下相邻两种颜色等间距渐变N = 10次,得到的新的色图矩阵N_map的总的颜色数n。
6. 算法的实现与应用
为了验证本文算法理论的正确性及优势,采用MATLAB软件实现算法,分别依据表1中彩虹色和极光色着色方案绘制Julia集广义Julia集。作为对比研究,首先展示了依据迭代次数及彩虹色和极光色的着色图,其中图1及图2分别显示固定参数下的Julia集及广义Julia集生成图,可以看出该算法导致非逃逸区颜色过于单一,且逃逸区颜色过渡明显;其次展示了本文的区域划分法及彩虹色和极光色的着色图,其中图3及图4分别显示Julia集及广义Julia集的生成图,可以明显看到同一复解析函数在不同着色方案下可以得到绚烂多彩的图形,及其美观,该算法同时对逃逸区与非逃逸区着色,且颜色渐变平滑。看似简单的复解析函数却能生成美观、复杂的绚丽图案。只要合理改变迭代公式及参数,可以为信息防伪、包装及装饰等提供无穷无尽的图案来源。这些图案只有在掌握了具体参数的情况下才能重新生成,具有强抗复制性能,极具防伪性能。后期会继续利用得到的分形图及其相应的参数,与信息防伪技术结合,尽可能实现商品防伪目的。
![](//html.hanspub.org/file/11-1542915x37_hanspub.png?20230629091808628)
Figure 1. Julia set coloring diagram based on the number of iterations and rainbow and auroral colors
图1. Julia集依据迭代次数及彩虹色和极光色的着色图
![](//html.hanspub.org/file/11-1542915x39_hanspub.png?20230629091808628)
Figure 2. Generalized Julia set based on the number of iterations and rainbow and auroral colors
图2. 广义Julia集依据迭代次数及彩虹色和极光色的着色图
![](//html.hanspub.org/file/11-1542915x41_hanspub.png?20230629091808628)
Figure 3. Julia set according to the region division method and the color of rainbow and auroral colors
图3. Julia集依据区域划分法及彩虹色和极光色的着色图
![](//html.hanspub.org/file/11-1542915x43_hanspub.png?20230629091808628)
Figure 4. Generalized Julia set based on region division and rainbow and auroral color coloring
图4. 广义Julia集依据区域划分法及彩虹色和极光色的着色图
7. 结论
分形理论属于非线性科学,是计算机科学研究的范畴。本文基于逃逸时间算法,提出了利用新的区域划分法控制色彩的广义M-J集绘制方法。该方法用不同的颜色控制逃逸区和非逃逸区像素点,且色彩过渡平缓。今后的工作重点是完善广义复分形图生成系统的设计研究,且加强对商品防伪与分形图结合的研究。
基金项目
本项目受国家级大学生创新创业训练计划项目资助(项目名称:基于分形艺术的包装防伪设计;项目编号:202110705049)。