返回列表 回复 发帖

让我们开始IFS分形的扫描法探究吧!

IFS分形的作法简单,但有一个致命的缺陷,就是太占内存了,当迭代次数一大,就会卡,其次是缩放比有限,当我们想看看局部细节时,有点儿困难!探究IFS分形的扫描作法,本身是一种手段的转变,这种转变是有意义的!就从最简单的谢氏三角形开始。
谢氏三角形的作法,在平面内任作三点,可以看作是一个三角形的三个顶点,分别作出这个三角形三边的中点,这样可以看作是把原三角形分成了四个全等的三角形,把原三角形的三个顶点依次迭代到原三角形三个角处的三个小三角形,就得到了谢氏三角形。
迭代线段: Snap78.jpg
源文件: 1.gsp (4.11 KB)
迭代点: Snap79.jpg
源文件: 1.gsp (2.88 KB)
初始化:
  complex z = #pixel     //复数z = 任意点
循环:
  IF (imag(z)>0.5)
    z = 2*real(z) + flip(2*imag(z)-1)
  ELSEIF (real(z)>0.5)
    z =2*real(z)-1 + flip(2*imag(z))
  ELSE
    z = 2*real(z) + flip(2*imag(z)))
  ENDIF
这一小段代码转化为我们中学教师比较熟悉的表达方式就是:
对任一点z(x,y),迭代公式为:
z=(2x+r1*(r2-1),2y-1+r1),
其中r1=0.5(1-sgn(.1+sgn(y-0.5))),
r2=0.5(1-sgn(.1+sgn(x-0.5))).
画板扫描的效果图之一:
Snap80.jpg
源文件: 2.gsp (12.49 KB)
王老师出手,又是一片风景。
3# xuefeiyang


思考1:这里的分类标准为什么会以x=0.5,y=0.5为界把平面分成四个区域呢?(其中合并了两个,区域个数为3)
2:迭代公式是依据什么来的?
3# xuefeiyang


思考1:这里的分类标准为什么会以x=0.5,y=0.5为界把平面分成四个区域呢?(其中合并了两个,区域个数为3)
2:迭代公式是依据什么来的?
xuefeiyang 发表于 2010-7-9 14:55
1. x=0.5,y=0.5 是找到各边中点。
2.迭代公式是依据各个小三角形变换到大三角形的仿射变换。
9# changxde


1.分类的作用究竟是什么?是让处于这个区域的点收敛到哪个中点?
2.仿射变换具体是如何变换成上面的迭代公式的呢?
我们的目标是通过这个简单的例子来说明如何由IFS分形的作法转换成扫描作法的一般方法。从前面几个源文件看,扫描法要处理的技巧比那种迭代线段或是迭代点要复杂得多。
这个分形虽然好多人都会作,但是不明数学机理,作出来了,又有何作用呢?
扫描法的特点是没一点着色值是唯一的。
没一点的迭代象应该是唯一的(这是与IFS本质的区别),确定象要靠相似性分类处理。
仿射变换用三点法来求,就得到上面的公式。
返回列表