返回列表 回复 发帖

让我们开始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:迭代公式是依据什么来的?
9# changxde


1.分类的作用究竟是什么?是让处于这个区域的点收敛到哪个中点?
2.仿射变换具体是如何变换成上面的迭代公式的呢?
我们的目标是通过这个简单的例子来说明如何由IFS分形的作法转换成扫描作法的一般方法。从前面几个源文件看,扫描法要处理的技巧比那种迭代线段或是迭代点要复杂得多。
11# 柳烟


我们现在不正是在探讨它的作法机理吗?这是一个通过交流来搞明白的过程。需要大家的积极思考与参与。
12# changxde


能具体说一下如何通过解方程组来确定变换的方式吗?
假定平面内有三点A、B、C,还有另外三点D、E、F,如果我想用线性变换,把三点A、B、C分别变换到D、E、F,请你确定变换的系数。变换的格式:(x,y)=(ax+by+e,cx+dy+f)。这里有6个待定的系数,a\b\c\d\e\f.
你这样说还是有很多板友不明白。我们想作的就是让大家明白,然后来讨论更一般的问题。实际上这个问题在《分形图形学》中有。P181
谢氏图的变形:
Snap83.jpg
返回列表