返回列表 回复 发帖
用圆作最终迭代的IFS-Apollony分形,能更好的反映圆的压缩过程。
圆的最终迭代:                           
IFS-Apollony【圆的最终迭代】.jpg
2011-1-1 17:11

圆的完整迭代:
IFS-Apollony【圆的完整迭代】.jpg
2011-1-3 00:49

IFS-Apollony【圆的最终迭代】.gsp (6.2 KB)

练习12. 圆的极限集分形的画板实现(1)
     接练习11,我们来作Apollony分形及其以单位圆为基圆施行三次反演变换,所得的四圆极限集。这里,我们练习一个新的实用技术——用Moebius变换构建圆的极限集的方法。
一、构造迭代格式:
     1.作出四个基圆,其中三个圆为等圆且两两相切,第四圆外切于前三圆,如图所示(为使所作分形的结构可变,我们以一点一线段作圆,将四圆拼成相切。):
                  
图片1.GIF
2011-1-2 18:30
  
      2.先在空白处任取一点z,再调用“画板分形常用工具箱”中“Moebius变换1”工具,依次匹配圆A、点z,得点A1;同法作点B1、C1、D1。
     到此我们可作z→A1,z→B1,z→C1,z→D1深度为n=6的迭代,保存就得到Apollony四圆极限集了。这是一个确定性分形,增大n才会使图形更细腻,但增大n会使计算机速度减慢,甚至死机。我们还是作随机分形。
     3.分别度量A1、B1、C1、D1的横纵坐标。
二、构造随机变换点
     作四等分概率轴和点P,用“区间示性数”工具仿练习8构造示性数,m1~m4,计算变换点横纵坐标:
                    
图片2.jpg
2011-1-2 17:38

                    
图片3.jpg
2011-1-2 17:38
  
绘制变换点w。
三、迭代成分形
     先将P合并到概率轴后,作z→w,P→P,深度为n的随机迭代,显示为“完整迭代”,保存后变n=1000,并调好各区间上的概率,使图形棱角更分明,再使n=50000,得IFSP-Apollony四圆极限集分形图。
               
图片4.GIF
2011-1-2 18:30

               
IFS-Apollony四圆极限集.jpg
2011-1-3 01:29

下面文件更新了,增加了圆迭代,速度有点慢

Apollony四圆极限集.gsp (51.56 KB)

练习13. 圆的极限集分形的画板实现(2)
      接下来我们练习圆的逆极限集的构造。先观察下图,它有四个基圆,分别成左右、内外反演对称,它是由左右两等圆及上下两圆间的两对互逆的Moebius变换迭代而成,其中(A,B,C) ↔(A',B',C')、(B,B',D') ↔(C,C',D),我们可选用“画板分形采用工具箱”中“Moebius变换2”工具来完成分形的绘制。
                     
IFS-4 circles limit set.jpg
2011-1-8 21:04

一、构造迭代格式:
    1.仿上图作基圆,其中D、D'分别是圆上的点,其余各点为切点(如下图);
                     
图片1.jpg
2011-1-8 21:04

      2.在空白处任取一点z,再调用“画板分形常用工具箱”中“Moebius变换2”工具,依次按(A,B,C)→(A',B',C')匹配各点得点w1,按(A',B',C')→(A,B,C)得w2,按(B,B',D') →(C,C',D)得w3,按(C,C',D) →(B,B',D')得w3。
二、构造随机变换点:
      作四等分概率轴和点P,求区间示性数,计算变换点w横纵坐标:
                     
图片2.jpg
2011-1-8 21:04

                     
图片3.jpg
2011-1-8 21:04

绘制变换点w。
三、迭代成分形:
      合并P到概率轴,作z→w,P→P,深度为n=1000的随机迭代,显示为“完整迭代”,保存后调好各区间上的概率,再改n=100000,得IFSP四圆逆极限集分形图。

      此文件中除点w外都可调,以改变分形结构,但注意先变n=1000后再调。

     IFS分形大量源文件请看帖子【迭代函数系统IFS】。下一个练习开始复分形的画板实现。

IFSP-四圆逆极限集.gsp (18.46 KB)

练习14. 经典Julia集和Mandelbrot集的逃逸时间算法的画板实现
    设f是一个复压缩变换,f向前迭代变换f^n定义为:
        f^0(z)=z,f^1(z)=z,…,f ^t+1(z)= f ^t(z),…,
设正实数r为阈半径,以正整数n为最大迭代次数,z为扫描框内的点。当时间t(迭代次数)≤n-1时,若f ^t(z)的模≤r,则进入下一次迭代,若f ^t(z)的模>r,则终止迭代;当迭代次数t=n时终止迭代。记录终止迭代时的时间为逃逸时间et,逸出时f ^et(z)的模为em,并对点z赋以关联参数et、em的颜色。这种计算机画图法叫做逃逸时间算法。当f(z)=z^2+c时,若对z着色,迭代成的分形叫经典Julia集,若对c着色,迭代成的分形叫经典Mandelbrot集。
    下面我们先练习用这种方法来绘制Julia集(或Mandelbrot集),着色模式采用“平滑着色模式”。
一、构建迭代格式(坐标公式)
      打开“复分形扫描框架【可调小扫描线】”,调用“画板分形常用工具箱”的“z^2”工具,按窗口左下角提示求出z2的坐标,再用“z[1]+z[2]”工具计算z^2+c的坐标。
二、求取et、em
     1. 调用“迭代终点Z、T”工具,依次匹配点z、z^2+c的横纵坐标,得Z、T;
1.gif
2011-1-16 00:47

   2. 作z→Z、p0→p0+p,作深度为n-1的迭代;
   3. 调用“et(eT)、em(eM)”工具,先后匹配点Z、T的迭代象,得et、em。
三、扫描线着色
   1. 调用“平滑过渡着色RGB”,先后匹配et、em,得s、R、G、B;
   2. 调用“RGB着色”工具,匹配点z(或c),得z(或c)的着色点(与z或c重合),此时系统默认选中z(或c)的着色点;
2.gif
2011-1-16 00:47

   3. 不取消z(或c)的着色点选中状态,直接进入菜单“变换”\创建自定义变换\颜色变换,再取消z的着色点选中状态;
   4. 选中扫描线,按“Ctrl+1”或进入菜单“变换”\颜色变换1,将颜色变换到扫描线,此时系统默认选中扫描线的颜色变换象,直接进入菜单“编辑”\属性\绘图,填“100”,“离散的”;
   5. 系统仍默认选中扫描线的颜色变换象,不取消直接进入菜单“显示”\跟踪变换路径、点型“最小”,另存为“Julia set 1”(或“Mandelbrot set”)完成制作。
3.gif
2011-1-16 00:47

4.gif
2011-1-16 00:47

   6. 所附文件参数设置:
     “Julia set 1”中n=200,r=100,两行扫描,c=-0.749-0.196i,采样数200;
     “Julia set 2”中n=200,r=150,三行扫描,c=0.309+0.025i,采样数200;
     “Mandelbrot set”中,n=200,r=200,三行扫描,z=0,采样数200;
     “反Mandelbrot set”中,迭代格式为z^2+c^-1,n=100,r=10,两行扫描,z=0,采样数200。
Julia set 1.jpg
2011-1-16 00:47

Julia set 1.gsp (15.56 KB)
Julia Set 2.jpg
2011-1-16 00:47

Julia set 2.gsp (15.63 KB)
Mandelbrot set.jpg
2011-1-16 00:47

Mandelbrot set.gsp (15.61 KB)
反M集.jpg
2011-1-16 00:47

反M集.gsp (15.64 KB)
在6#、7#更新了三个文件,增加了一些重要工具,其中扫描框架预设参数一般不要删除或更改标签,因为画板分形常用工具箱设置了一些自动匹配功能。
下一个练习:M\J集的镂空方法解析
Julia set 3.jpg
2011-1-16 21:22
柳老师过奖了,太谦虚了,我从你那里也学习了不少。等我把这个帖子作完后,还有向你请教UF呢。
      我一直在琢磨画板分形的一体化工具,希望从迭代格式的横纵坐标直接到扫描线的赋色,这样就降低了作画板分形的门槛,但一直没能成功。昨天更新的工具就是这一努力的初级结果,还要请柳老师测试匡正。
71# 津华园
柳老师说的对,作复分形要有钉子精神,也不需要太多太深的数学知识,高中那点就行了。现在有了画板分形工具箱,作画板分形可以“傻瓜”化了,我们教师这不是问题。
练习15. 经典Julia集和Mandelbrot集的RGB着色与内外部的修饰
      前一个练习中我们采用的着色方式为RGB(红绿蓝)三色方式,这种着色方式在画板复分形中最为常见,它能够很好的与et、em关联,其特点是色彩明快,色调亮丽。由于逃逸边界采用的是圆形边界(以坐标原点为圆心,r为半径),所以分形的内部和外部呈环带状,其中每一环带上的et值相等。
      J/M集的RGB着色参数的构造可以自由编辑,并无定法,因人而异,但这一点是相同的,即必须与et或em相关联。经验证明,要获得等et值环色调渐变的效果,可使用“平滑着色模式”,要使等et值环色彩亮丽多变,可使用“夸张着色模式”,如果要得到镂空效果,可对一些等et值环或逃逸临界值em进行剔除。这些着色模式,已经作成工具,收入“画板分形常用工具箱”中,在工具使用中,要根据我们所作的复分形的不同迭代格式、不同扫描区域,以及分形的尺寸大小,对着色参数s、R、G、B中有关常数进行适当调整,或对运算格式进行再编辑,以达到最佳视觉效果。这个调整的过程,是作复分形中最耗时间、最具期待、最有魅力的过程,因为一件好的作品即将从我们手中诞生。
      下面练习使用“夸张着色RGB”和“镂空效果RGB”工具,以及等et值环双曲化方法
一、夸张着色模式
      打开前一个练习所附文件“Julia set 2”,删除点z的子对象点#13,调用“画板分形常用工具箱”的“夸张着色RGB”工具,依次匹配et、em,得着色参数s、R、G、B,再调用“RGB着色”工具,仿前一个练习对扫描线进行处理,保存为“Julia set 3”。使c=0.34+0.05i,n=350,r=3,eTstep=0.05扫描即成下图:
Julia set 3.jpg
2011-1-21 17:46

二、镂空模式
      下图是将前一个练习所附文件“Mandelbrot set”用“画板分形常用工具箱”的“镂空效果RGB”工具处理而成,制作方法仿上例。改r=2.38,eTstep=0.05,扫描得下图:
Mandelbrot set 2.jpg
2011-1-21 17:46

三、等et值环的双曲化处理
      打开文件“Julia set 3”,双击p,改“x+^2+y+^2”为“x+^2*y+^2”,r=300,,扫描得下图:
Julia set 4.jpg
2011-1-21 17:46

Julia set 3.gsp (17.58 KB)

Mandelbrot set 2.gsp (15.71 KB)

Julia set 4.gsp (17.58 KB)

让柳老师见笑了,这名字是我自己瞎编的,不知妥否。这种着色模式蓝黄红白变化明快,不像平滑着色模式那样舒缓,适合于大尺度分形,夸大了et环色彩差异,所以才取叫这个名字。如果et环密集,这种模式则不适宜,否则将使画面杂乱无章。
返回列表