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

分形绘图简介(二) Apophysis 7X登场

 
阅读更多
前一篇: 分形绘图简介(一) 什么是分形绘图

首先隆重推介一下 分形艺术网 ( http://www.fxysw.com/ ),上面有不少绘制分形图的软件、教程和示例。我也是通过这个网站才知道了Apophysis 7X这款软件。

Apophysis 7X简介

Apophysis 7X是一款用dephi写的开源分形图软件 ( http://sourceforge.net/projects/apophysis7x/ )。它是Apophysis的改进版 ( http://apophysis.org/ ),适用于在win7下运行。它使用了一种叫“分形火焰算法”(Fractal Flame Algorithm)的算法来绘制分形图。关于这种算法以后再来讨论。要想知道这种算法能画出什么样的分形图来,很简单,在google图片里搜索“apophysis”就能找出一大堆示例。反正当时是把我眼珠子都看到掉出来了,随便转一幅:



其他相关软件和资源

当然,基于delphi的Apophysis只能在windows下运行。如果是非windows平台,也有其他选择,例如:

Fr0st ( http://fr0st.wordpress.com/ ):跨平台,基于python
Qosmic ( http://code.google.com/p/qosmic/ ):Linux
Oxidizer ( http://draves.org/blog/archives/000365.html ):Mac OS X

另外,有一款适用于上述所有软件的外部渲染器 flame3。可以在 http://code.google.com/p/flam3/downloads/list 下载。据说相对于Apophysis内部自带的渲染器,很多人更喜欢用这个外部渲染器来渲染最终作品。但我还没有测试过(懒得装),现在正在把玩阶段,用内部的渲染器也还凑合了。

此外,分形艺术网提供了目前能找到的大部分Apophysis插件打包下载(410个, http://www.fxysw.com/thread-764-1-1.html ),以及相当不错的中文视频教程 ( http://www.fxysw.com/thread-462-1-1.html )。

初步把玩Apophysis 7X
撇开高深的公式,算法。我们先来把玩一下这个Apophysis 7X。

话说这种分形绘图的一个最大好处是,我们甚至根本不用真正动手去画什么,通过配置几个参数,就能得到一幅看上去还不错的图案。虽然这种程度离随心所欲差得还远,但已经足够让我们感受一下分形绘图的魅力了。

Apophysis甚至已经为我们想到了这点,每次我们运行Apophysis,都能看到主界面左边栏有一个列表,里面列出了随机生成的若干幅图片。自然这些图片不会有什么具体的含义,看上去有点像我们小时候玩的“漂墨画”(就是用墨汁漂在水面上,然后盖上宣纸把墨迹印下来,然后再慢慢想这画像什么)。不过有一些看上去已经很不错了,如果你都不喜欢,可以按CTRL+B让系统重新随机生成一批图案。



现在我们按F4键,会打开一个Editor窗口,这是Apophysis的公式编辑器,作图工作将主要在这个编辑器里进行。



编辑器的左边,可以看到若干个三角形(例子中是6个),每个三角形就代表了一个变换公式。具体是怎么样的公式现在暂时不管,我们可以直接用鼠标拖动这些三角形(拖动顶点改变形状,拖动O顶点所对的边改变大小,推动X或Y顶点的对边旋转,拖动三角形内部改变位置)。可以看到右上角的预览窗口中的图像随即发生变化,放开鼠标后,可以看到主窗口的图案也随之变化。原来这么复杂的一幅图像就是由这6个三角形(正中一个灰色的暂时无法修改)定义出来的。

现在按Ctrl+C (或者选择主窗口上Edit菜单的Copy),然后打开一个文本编辑器(例如记事本),按Ctrl+V。会粘贴出来这样一段代码:

<flame name="Apo3D-111230-203" version="Apophysis 7x Version 15 (High-Memory Version)" size="800 690" center="0.242663060284215 -0.0767561205208778" scale="155.250209029628" oversample="1" filter="0.5" quality="50" background="0 0 0" brightness="4" gamma="4" gamma_threshold="0.01" estimator_radius="9" estimator_minimum="0" estimator_curve="0.4" enable_de="0" plugins="" >
   <xform weight="0.2" color="0" swirl="0.725348455598578" foci="0.274651544401422" coefs="0.154001297547229 0.60493504054313 -0.60493504054313 0.154001297547229 0.462375303264707 -0.591377515345812" opacity="1" />
   <xform weight="0.2" color="0.25" diamond="0.460409770254046" eyefish="0.539590229745954" coefs="0.489791501228399 0.109636440641612 0.303588756893197 -0.610869702495761 0.186051276978105 -0.114412325434387" opacity="1" />
   <xform weight="0.2" color="0.5" spherical="0.774037769529969" horseshoe="0.225962230470032" coefs="0.168981108687069 0.271618805519773 -0.310423651956211 0.215587926970483 -0.304375217761844 0.56909538153559" opacity="1" />
   <xform weight="0.2" color="0.75" eyefish="0.586237216368318" foci="0.413762783631682" coefs="-0.261984779246266 -0.664561348859473 0.720609440257043 -0.431218567826034 0.616186554078013 -0.214467371813953" opacity="1" />
   <xform weight="0.2" color="1" eyefish="0.0815337933599949" rings2="0.918466206640005" coefs="-0.350262103666607 0.212207197728675 -0.0423569159730609 -0.298928331118831 0.878593480680138 0.655165375210345" rings2_val="0.2189" opacity="1" />
   <palette count="256" format="RGB">
      0627421B3E6361444B9C4326D87503EB8E03FEAC03FAD4A3
      FCE7DAEEE2F7EFE5F9EDDDFADCCFF4CBC8F3C6C2EBC6ADD4
      CDA2A7CB8A2AE99102F29401FA9D06D7AF8CCBAFC3BEA4C3
      BE9489D88716D77D0AAB661781642F795F90808EAEADA1DD
      B7AAE4BAADE5BCAFEDBCB4EFBFB2F2BFB0F1C3ABE6C1A6F0
      C4A7E7C3A8E5B9A4DCB1A0D2898B8D86523C8D2612741801
      701001731C06783D3467499F4024A61D28AF182AA7082FAA
      0226AC0722B20930B91336BA1743C2283BB9343DB74144BF
      4446BF4D56C75459C9696ACB7272DFB295DDC19DD3D3ACA4
      F89E0BFEA503FCAC08EABFB0DBC4CFD4C1D8CFC0DBCDB1E3
      CBB3E3C5B7EEC4BDF4C2B8F4C8BBF5CDC7FBD5D7FBD9D6FE
      ECE9FAF7E8FDFBEEFDFBF2FBFCF3FBFBF0FCF3E7FBE9DBE7
      EBD4D6D5B6DACCA4A9A16E62733B2B7728037C1F05842708
      AE4907DF8005F39D0AE8B3A7E0C4D2EFCDD3F1DDDAEADFEE
      ECE1F8E6D9F7E5CEEADBCDDBD6C4D2D7B8A3F69E07F9A503
      F5A004F19203E98902DC7A07A15833997F82AC91C2BFA0D6
      C0A4E1C0A2E6B99FE8B19CE29093DF6283DC517CD64073CB
      3D75B53E6FAF456AA2426A9431649A1957961E50910D4282
      11467920506744526358220B6911066A130377381F724C53
      7665A7A196D9B0ACE9B3B1E9B0B7F2ABB1EEA8B5F1B1B9F2
      B2BCF1B2BEF7BDC4FCC2D0FACBCBF3C5C6F4C4C3F3C0C4F4
      C4C1EEC0BBEFB7BFF0B6BEF4BCBFE0B9B3E0B9ABD2AB90B1
      AF815CE18A01EA8C01F09204F59706DBA88AC19DCEAD9DDB
      6C7BCB537ACF467FBD4074B43D71A838619E1E598E235A80
      1E597D164D7812446E1437585D0806640903760E01882906
      D97103E38901DF8403A5631490371E7F2006741A06702E2C
      6F47625C5D986B6EB06673C86E76D5928EDEADA3E0B6AFE5
      B8B3E9B8B1ECB6ACEFB2AAEFAEADEDAAA0E16C78DA627DD2
      5477DA5179D9477BDA4873D44F72D05774CE576ACB5564CA
      4A5CC6395AD1375FCE3D58C33D4FBA3353C22150C32057C6
      205AC93368D33A66CE3D6AB53E6EB24873A5496EA04B5F9B
      4B6091445B952760941F518F1D5289174F79194078113C64
   </palette>
</flame>


这就是描述这幅图像的全部信息,以后只要把这段文本直接复制粘贴到Apophysis 7X中(直接在Apophysis 7X中按Ctrl+V进行粘贴),就能重现这幅图像。如果我们在一些网站中看到带有这种代码的示例图形,直接把代码复制到软件中即可。 细心一点的话可以发现,上面的xml片段中,5个xform元素分别描述了5个三角形变换信息。最后的一坨数据,是图像中使用的渐变颜色方案。

这种形式的图像信息,在Apophysis中称为“参数”(Parameter)。我们可以发现,在File菜单下,没有“Save”选项(估计是为了避免歧义),只有“Save parameters”选项。事实上就是保存这种图像参数文件,后缀名为.flame。

渲染图形
在Apophysis中创作出心仪的作品后,需要把它渲染为最终的图形文件输出。在软件的主窗口中所看到的图像出于编辑效率的考虑,还是比较粗糙的,有很多噪点。真正渲染出来的图形会比它要细腻。在主窗口中按Ctrl+R,或者选择工具栏中的“Render flame”按钮(一个小齿轮图标),将会弹出渲染对话框。



简单介绍一下各个项目:
Destination : 输出文件名称,可以选择png或jpg后缀

Size : 输出图像尺寸

Density : 函数递归深度 (此数字越大,图像越细致,渲染速度越慢。但超过一定上限后,深层的递归图形超出了像素的精度,对图像的精度就不会再有实质的影响,但仍然会影响速度。因此需要根据图像尺寸进行选择,一般在200,500,1000中选择)

Filter Radius : 反锯齿强度。此数字越小,锯齿越明显,越大,线条边界越模糊。一般就用默认值0.4

Oversample : 为了更准确地计算亮度与颜色所使用的冗余采样率。此数越大则渲染速度越慢,小了则可能丢失一些亮度与颜色层次。一般就用默认值2。

Buffer depth : 未知有何影响,一般就用默认值。

Memory limit : 如果渲染所需内存超出可用物理内存(特别在windows下,单个应用最多可用内存为2G),则设置这个使用内存上限。虽然损失速度,但能保证正确渲染。特别要注意的是,这里的限制是渲染图像所使用的内存,渲染后进行存盘时还需要一些额外的内存。因此最好再预留200M左右的空余内存用于存盘。

Save parameters : 渲染时是否同时保持一份当前的图像参数文件(就类似上面复制粘贴的xml格式)。

下一篇 : 分形绘图简介(三) 界面操作
  • 大小: 50 KB
  • 大小: 595.2 KB
  • 大小: 107.5 KB
  • 大小: 61 KB
分享到:
评论
1 楼 fengda2870 2012-01-01  
谢谢支持,写的很好

相关推荐

    Apophysis7x_ha_wishdown.zip

    《探索分形艺术:Apophysis7x_ha_wishdown.zip详解》 在数字艺术领域,分形艺术以其独特的魅力吸引着众多爱好者和设计师。其中,Apophysis7x是一款备受推崇的开源分形火焰生成软件,它以其强大的算法和用户友好的...

    Apophysis-2.09(分形图制作)

    **Apophysis 2.09:探索分形艺术的免费工具** Apophysis是一款流行的分形图像生成软件,尤其适合那些对计算机图形学、数学和艺术领域有热情的用户。这款工具以其独特的功能和易用性,在分形图制作领域占有一席之地...

    Apophysis 7X-开源

    Apophysis 7X 是一款专为创建分形艺术设计的开源编辑器。它允许用户探索无限的数学之美,通过自定义参数来创造出独特的、复杂的视觉效果,这些效果通常被称为“分形火焰”。Apophysis 7X 版本特别优化了对Microsoft ...

    apophysis7x:宇宙递归分形火焰编辑器

    #欢迎来到分形火焰的世界! 让我们从最基本的角度开始:什么是分形? 分形首先是数学构造。 但是大多数人也将所说数学结构的视觉表示也称为“分形”。 分形图像通常完全由计算机生成,是将数学与艺术结合的关键。...

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

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

    分形压缩定理简介

    #### 二、分形压缩的工作原理 分形压缩依赖于图像的自相似性质。在一幅图像中,可能存在许多小区域与较大的区域在形状或纹理上有相似之处。通过识别这些相似区域并将它们表示为数学上的分形结构,分形压缩能够将...

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

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

    matlab代码实现分形维数计算_二值图像_分形维数_分形图像

    本主题将深入探讨如何使用MATLAB来计算分形维数,特别是针对二值图像的情况。 首先,我们需要理解什么是分形。分形是具有自相似性的几何对象,即使在不同尺度下观察,其形态仍然保持相似。它们通常具有非整数的维度...

    openGL实现分形树

    7. **光照和深度处理**:添加光照模型,使分形树看起来更加立体。同时,开启深度测试(`glEnable(GL_DEPTH_TEST)`),确保远距离的分支不会覆盖近处的。 8. **循环渲染**:在主循环中,调用`glClear()`清除屏幕,...

    fenxinghanshu_分形函数的二维matlab代码_分形函数_

    本文将深入探讨标题和描述中提到的“分形函数的二维MATLAB代码”,以及如何在MATLAB环境中实现和理解这些分形函数。 分形(Fractal)一词由马尔科姆·布尔巴基在1975年提出,它描述了一类具有自相似性的几何形状。...

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

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

    APOPHYSIS插件压缩包

    APOPHYSIS是一款非常受欢迎的基于Windows系统的开源软件,专门用于创建和编辑分形艺术。它以其用户友好的界面和强大的渲染能力而闻名,使得复杂的数学公式可以转化为视觉上令人惊叹的艺术作品。"APO -- FRACTAL制作...

    二维分形树

    二维分形树是一种基于数学规则的复杂图形,它在计算机图形学、艺术设计以及科学研究中都有广泛应用。在本话题中,我们将重点讨论如何利用L系统(Lindenmayer系统)在Visual C++(简称VC)环境下生成这类迷人的分形...

    基于matlab的分形插值程序(二维和三维都有)

    在MATLAB环境中,分形插值是一种用于处理不规则数据分布和复杂几何形状的技术,它在二维和三维空间中都得到了广泛应用。本程序集包含了针对这两种情况的实现,旨在帮助用户理解和应用分形插值算法。 一、分形插值...

    二维图像的分形维数编程

    基于MATLAB软件实现二维图像的分形维数的求取,A quantitative analysis of perimeter roughness is carried out to illustrate the degree of roughness of input images.

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

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

    图像分割分形算法

    分形算法是一种独特的方法,利用分形几何理论来处理图像分割问题。分形,简单来说,是指在不同尺度上具有自相似性的几何形态,这种特性在自然界中广泛存在,如海岸线、云朵、树木等。在图像处理中,分形算法可以捕捉...

    multifractal 二值(或三维)图像 的多重分形谱

    7. **解释与应用**:最后,根据得到的多重分形谱,分析图像的多重分形特性,如自相似性、尺度不变性和复杂度等,并将其应用于图像分类、压缩、增强等领域。 在三维云图分析中,多重分形谱同样有效。云图通常由大量...

    分形曲线分形几何学之二-windfern.m

    分形曲线分形几何学之二-windfern.m 分形曲线 分形几何学之一: https://www.ilovematlab.cn/thread-88859-1-1.html 程序: lyapunovfractal2.m 结果: 1.gif ...

Global site tag (gtag.js) - Google Analytics