`
kidneyball
  • 浏览: 328960 次
  • 性别: Icon_minigender_1
  • 来自: 南太平洋
社区版块
存档分类
最新评论

分形绘图简介(四)开始作画

 
阅读更多
上一篇 : 分形绘图简介(三) 界面操作

终于开始画第一幅画了。这是根据网上的一个教程翻译过来的。主要是感受一下创作一幅分形图的步骤。

先看最终效果



嗯,令我想起了当年一个电视游戏《魂斗罗》的风格,也有点异形的风格。

如果你比较懒的话,直接把下面代码复制到Apophysis 7X中就能得到同样效果(复制代码后直接在Apophysis 7X中按Ctrl+V)。

<flame name="Blank Flame" version="Apophysis 7x Version 15 (High-Memory Version)" size="1500 1000" center="0 0" scale="165" angle="4.71221444745949" rotate="-269.99" oversample="1" filter="0.2" quality="1" background="0 0 0" brightness="10.5695652173913" gamma="1.33" vibrancy="0" estimator_radius="9" estimator_minimum="0" estimator_curve="0.4" enable_de="0" plugins="" >
   <xform weight="0.5" color="0.542" swirl="0.168" polar="0.122" blur="0.5" coefs="1 0 0 1 0 0" opacity="1" />
   <xform weight="1" color="0.179" julian="0.775" coefs="1 0 -0.7 0.2 0 0" julian_power="20" julian_dist="1.5" opacity="1" />
   <xform weight="3" color="0.42" julian="-2.33" coefs="1 0 0 1 0.65 0" julian_power="2" julian_dist="-0.9" opacity="1" />
   <palette count="256" format="RGB">
      525104524C06523417521D29521E2952202A52302F524135
      525E3F52614052644152573C524A3852363152232B52202A
      521D29521D29521B28521A28521A27521A27521A27521A28
      521A28521D2952202B523D3D525A4F52574652553D52292D
      521D29521426520D2452072252061F52051D52041F520421
      520A23520B23520C23520E1E52111A521219521419521819
      52270F525204525204525204524A0752420A52311A52202A
      521D29521B28521A28521827521727521727521727521727
      521727521526521626521727521727521727521426521426
      521426521225521025520E24520D24520D24520D24520A23
      520A23520E1A521517521D1552320E524708525104525403
      525503525503525503525503525503525503525005494C2C
      52232B52202A521D29521A28521A28521A28521D2952202A
      52553C525E3F526842526943526B44526440525039754533
      52232B521727521526521426521025520B22520B1B520E1A
      52081C52091F520A23520B23520D24520D24520D24520D24
      520D24520D24520E25520F26521025521426521828521D29
      524E0552490752440952321952202A521D29521A28521727
      521426520D24520B23520A2352072252042152012052001F
      52001F52001F52001F52001F52001F52012052012052051D
      52081C52141948180C3F1D00524807525104525403525503
      525204524B0652440852191952111A520B1B52051D52051D
      52051D52051D520520520A2352102552172752202A524737
      527747527A47527D4852935052A35352AD5852B45E52AD59
      52A556529250526D4452613C52463752202A521D29521D29
      52202A523A34525D3E527C48528D4F529D4E52814A526D44
      5E5715525304525503525503525503525403525104524209
      52202A521D29521A28521727521426521025520A23520421
      52031E52031E52031D52051D52081C52081C52081C520B1B
      520E1A520E1A520B1B52081C52081C520A23520D24521025
      521426521727521A28521B27522914524708524E05524E05
      52420A52232A52232B52533B526D44528D4FAF9A6BAF774F
   </palette>
</flame>


Ok,现在来一步步看这幅画是怎么画出来的。

首先,打开Apophysis 7X后,按Ctrl+N新建一个Blank Flame。

按F5打开Adjustment面板,在Gradient标签页选择“144_Apophysis-040426-147KaosRing”调色板(正常作画的话,可以在画完后再选调色板,或者在绘画过程中任意步骤中选。在这里先选是希望保证实际效果能与本文的截图一致)。关闭Adjustment面板。



现在用F4打开Editor面板(当前变换三角为1号),打开Variations标签页(有的版本会看到linear3D或linear默认为1)。先按“Clear”按钮清空。



blur的系数设为0.5,swirl设为0.168,polar设为0.122。(下面为了截图方便,勾选了Hide unused variations选项,实际操作不用这样做。不过实际工作中可以经常用这个选项来检查其他系数是否清零)



这时主窗口显示如下图像



现在按Editor面板工具栏上的New Transform快捷键(),新建一个2号变换。

同样,进入Variations标签页,先按Clear清空,然后把julian的系数设为0.775。然后进入Variables标签页,把julian_power设为20,julian_dist设为1.5



这时主窗口上得到了如下图像:



现在,进入Transform标签页,把X,Y,O三个顶点分别设为:
X:1, 0
Y:0.7, 0.2
O:0, 0
并且设置2号Transform的权重(weight)为1



现在主窗口上的图像是:



如果你耐着性子看到这里,估计已经频临崩溃的边缘了:哇,搞了半天才出来中间那个小圆圈。还要放进去多少个变换才能把外围那么复杂的图案画好啊?答案是:1个。是的,您没有看错,只差一个,真的只差一个了!

再按New Transform按钮加入一个新变换(3号),同样去Variations标签页,先用Clear按钮清空。现在把julian的系数设为-2.33(负2.33)。注意,负号必须用大键盘的减号键来输入(小键盘的减号是用来切换当前变换三角的快捷键)。

然后进入Variables标签页,把julian_power设为2,julian_dist设为-0.9(负0.9)

嗯,性急的你已经发现了主窗口的图案没有任何变化(其实认真看的话是有一点点不同的,在上一步做出来的牙齿前端又长出来一点点)。



不是说只差一个了吗?别急,3号变换还没设置完呢,只算完成了半步。

现在进入Triangle标签页,把平移的步长设为0.65,然后按右箭头图标,向右平移一步。
平移后的顶点坐标应该是:
X: 1.65,0
Y: 0.65,1
O: 0.65,0

最后,把权重(weight)设为3



好,到此为止,所有变换就都设置好了。你会说:啥?我在主窗口只看到了这样的东西呀!



哦,忘了说,分形图是画好了,但要成为好看的最终作品,还要调节镜头参数,亮度和颜色。按F5键打开Adjustment面板:

先把Scale设为11

进入Camera标签页中,把Rotation设为270

进入Rendering标签页中,把Gamma设为1.33, Brightness设为10.58,Vibrancy设为0。


哇,这下看清楚了,原来刚才黑乎乎的背景里隐藏了这么多的细节:



现在剩下最后一步了,为每个变换指定颜色,让图像的色彩丰富起来。

再按F4打开Editor面板,用Transform下拉框选择1号变换,进入Colors标签页,把颜色索引值设为0.542



再选择2号变换把颜色索引设为0.1793号变换的颜色索引设为0.420

大功告成。



函数式绘图

好了,现在我们来做个实验。用F5打开Editor面板,选择1号变换,按快捷栏上的Remove transform按钮把它删掉。你会看到主窗口的图像变成了



当初做变换1的时候,它的图像只是屏幕中央的一个圆。但现在如果删掉变换1,除了中间的圆没了之外,周边的细节也发生变化。这是因为在整个图像中,变换1的图像被其他变换函数迭代映射到了图像的其他局部图形中。

并且,你会发现删除原来的1号变换后,原来的2号变换就变成了1号,原来的3号变成了2号。现在,我们加入一个新的变换,重新按照原来变换1的参数进行设置。这时虽然原来的1号变换成了现在的3号变换,但是最终图像与原来是一模一样的!

我觉得这是分形绘图的一个非常奇妙的地方,因为图像是用函数映射出来的,就像在函数式编程里一样,函数除了输入和输出外,没有副作用。这使得函数在任意时机求值,结果都是一样的。这与普通的photoshop绘画不一样,不用必须按照1步1步来,在第10步的时候如果发现第1步搞错了,结果整副画都要重新画一遍(除非你分出来很多layer)。绘制分形图是,如果发现哪个变换参数设错了,直接去改就行了。先设哪个后设哪个,其实关系不大。

无限细节

分形图的另一个特点是它的细节是可以无限扩大的(理论上)。例如我们在主窗口的工具栏中选择Zoom in按钮,放大以下局部



你会得到这样的图像



可以看出,分形图的局部被放大后,与普通的点阵图和矢量图都有所不同。点阵图的局部被过量放大自然会形成有锯齿的色块,而矢量图的局部被过量放大后虽然线条不会出现锯齿,但由于图像本身没有局部的细节信息,也只会形成色块。而分形图则是出现稀疏的噪点,其实图形的细节都还在,只不过由于运算效率的考虑,软件没有使用足够多的点去生成图形而已。如果我们把主窗口工具栏的“Editor”按钮左边的下拉框的数字设为1000。(这个数字是在主窗口生成图形时所用的Density参数),就可以得到以下图形



可以看到,在这一局部里,还是存在无限精细的细节。只不过在我的机器上,为了生成这种精细度的图形,每次刷新都要用两分多钟。当然,平时我们不需要把主窗口的预览图形的精度设得这么高,而是在渲染输出时才把精度提高。

这是另一个局部(下面那排尖刺中其中一个尖刺)的细节:



用简单的三个变换函数就能生成具有无限精度的图形,难怪分形图被称为“最接近自然的图形”。

看来,画一幅分形图是非常简单的。如果“简单”是指“步骤相对少”的话,是的。问题是,上面设的那些参数究竟有什么意义,变换三角的实质又是什么东西呢?不了解这些,是无法做到随心所欲地创作的。

那么下面,我们开始看看这个神奇的“分形火焰算法”究竟是什么一回事。
  • 大小: 154.3 KB
  • 大小: 26.1 KB
  • 大小: 61.1 KB
  • 大小: 20.9 KB
  • 大小: 9.6 KB
  • 大小: 7.9 KB
  • 大小: 24.8 KB
  • 大小: 9.9 KB
  • 大小: 30.1 KB
  • 大小: 10.4 KB
  • 大小: 10.6 KB
  • 大小: 31.5 KB
  • 大小: 17.2 KB
  • 大小: 86.4 KB
  • 大小: 39.7 KB
  • 大小: 143.8 KB
  • 大小: 88.5 KB
  • 大小: 163.4 KB
  • 大小: 84.1 KB
  • 大小: 291.2 KB
  • 大小: 138.8 KB
3
2
分享到:
评论
1 楼 谭砚耘 2012-01-02  
  真棒!作者有心了!

相关推荐

    分形与混沌\分形制图软件和程序

    分形制图则是将这些数学概念转化为可视化图像的过程,使得我们能够更好地理解和欣赏这些无处不在的几何形态。 分形,这个词来源于希腊语“fractus”,意为“破碎”或“不规则”。它由数学家曼德勃罗(Benoit ...

    分形压缩定理简介

    #### 四、分形压缩的实际应用案例 1. **卫星图像**:分形压缩在卫星图像的压缩中表现出色,可以实现高达170:1的压缩比,同时保持良好的图像质量。 2. **视频压缩**:在视频压缩领域,分形压缩能够提供25:1到244:1...

    三角形分形绘图问题 C语言

    分形是以多种概念和方法相互冲击融合为特征的图形。分形所呈现的无穷玄机和美感引 发人们去探索。分形使人们觉悟到科学与艺术的融合,数学与艺术审美上的统一,使昨日枯 燥的数学不再仅仅是抽象的哲理,而是具体的...

    唐代铜镜纹饰的分形制图思想

    唐代铜镜纹饰的分形制图思想是古代工艺美术与现代数学理论的一次跨越时空的对话。在本文中,我们将深入探讨这一独特的艺术与科学的交汇点,以揭示中国古代艺术家们无意识中运用的复杂几何学原理。 “分形”一词源于...

    多重分形,多重分形谱,matlab

    多重分形分析是一种复杂的数据分析方法,主要用于研究具有非线性、非高斯特性和尺度不变性的信号或图像。在标题“多重分形,多重分形谱,matlab”中,我们可以看出本主题关注的是使用MATLAB进行多重分形谱的计算。...

    分形基础课件--分形基础

    分形,这个概念源于20世纪70年代,由数学家曼德勃罗提出,它是一种具有自相似性、无标度性和复杂性的几何形态。本分形基础课件是为初学者精心设计的,旨在深入浅出地介绍分形理论,帮助学习者建立起对分形的全面认识...

    分形艺术之 论文 分形论文

    分形艺术与理论:探索复杂之美 在数学与艺术交汇的奇妙领域中,分形艺术以其独特的魅力吸引了无数研究者和艺术家的目光。分形,这一概念由数学家本华·曼德博在20世纪70年代提出,揭示了自然界中普遍存在的自相似性...

    分形动画,分形技术,分形

    分形,源自希腊语“fraktal”,是一个数学概念,由数学家曼德勃罗(Benoit Mandelbrot)在20世纪70年代提出。它描述了一种具有自相似性的几何形状,无论在宏观还是微观层面上,都呈现出相同的结构模式。这种无限重复...

    Higuchi算法分形.rar_Higuchi_Higuchi分形算法_分形 声_分形维数

    《Higuchi算法在声发射分形维数计算中的应用》 分形,这一概念源自数学,是指在不同尺度上具有相同或相似结构的几何形态,它揭示了自然界中复杂结构的内在规律。Higuchi算法是计算一维时间序列分形维数的一种有效...

    分形几何-分形树源代码

    首先,我们从一个简单的线条或分支开始,然后在每个分支的末端生成更小的分支,这个过程会不断重复,每次生成的新分支都比原来的短一些,并且可能会有不同的角度和颜色。这样的算法可以创建出层次丰富、细节细腻的树...

    多重分形_多重分形维数_多重分形

    多重分形是数学和物理领域中的一个重要概念,它在复杂系统的研究中扮演着核心角色。多重分形理论扩展了单一分形维度的概念,允许我们更深入地理解和描述那些具有多种尺度特征的复杂对象。在本压缩包中,包含了用于...

    3分形例子代码.zip_matlab 分形_matlab分形案例_几何分形 matlab_分形 matlab_分形几何

    4. **谢尔宾斯基三角形**:通过将一个等边三角形分割成四个小等边三角形,然后对每个小三角形再次执行此过程,最终得到无限细分的分形结构。 在MATLAB中实现这些分形通常涉及循环、条件语句和迭代计算。代码可能会...

    分形的资料和源码 分形屏保 分形书籍

    分形,一种自然界中普遍存在的几何形态,以其复杂的自相似性与无穷的细节吸引着科学家和艺术家的目光。在计算机科学领域,分形理论被广泛应用于图像处理、图形生成、数据压缩等多个方面。本资料包中包含了丰富的分形...

    matlab代码实现分形维数计算,matlab绘制分形图形,matlab

    MATLAB提供了丰富的绘图函数,如`plot`、`surf`和`imshow`等,可以方便地创建和显示复杂的分形图像。 在MATLAB中实现这些功能,通常需要编写循环或迭代过程,因为分形的生成往往涉及反复应用相同的规则。例如,曼德...

    分形算法 分形树 很炫的

    5. **绘图**:使用OpenGL或MFC的绘图函数,将每个分支作为线条绘制在屏幕上,根据颜色和粗细的变化进一步增强视觉效果。 6. **生长过程动画**:为了实现“从树开始生长到落叶”的效果,可以将整个生长过程分解为一...

    Fractal-interpolation.zip_分形函数_分形插值_分形插值 matlab_分形插值matlab

    分形插值是一种在计算机科学和数学领域中用于数据拟合和插值的高级技术,特别是在处理不规则或复杂的数据集时。它基于分形理论,即利用分形几何的特性来构建连续函数,使该函数能够精确地通过离散的数据点。在MATLAB...

    分形图形学中的随机分形课件

    ### 分形图形学中的随机分形课件 #### 分形图形学概述 分形图形学是一门研究自然界中复杂形状和结构的学科,通过数学工具和技术来理解和模拟这些形状。分形图形的一个重要特征是其自相似性,即在不同尺度上具有...

    tree_python_分形树叶_分形树_

    在Python编程语言中,我们可以利用turtle模块来创建各种图形,包括复杂的艺术作品,如分形树。分形是一种自相似的几何形状,在自然界中广泛存在,比如树叶、山脉和云朵。分形树就是一种利用分形理论绘制的树形图案,...

Global site tag (gtag.js) - Google Analytics