返回列表 回复 发帖
209# stg1109
网上是否有图片?真的不明白你的图是个啥。
图片.jpg
勾股树[外迭代+点陷阱].gsp (15.62 KB)
211# 柳烟


183楼的图!
213# stg1109
明白您的意思了。恰好相反,扫描法作出的勾股树少了一些迭代正方形,我正想补上呢,您却要过滤掉它们。勾股树的基本特点就是:1.按勾股定理,每一级迭代正方形(一类全等正方形)的面积和等于初始正方形的面积;2.由等腰三角形三边正方形产生的勾股树的最终迭代像是Levy曲线。所以过滤掉那些正方形没有必要。
New.jpg
1.png
2.png
3.png
我今天尝试按外迭代法造此正方形科赫,结果白干一天,原因在分区时遇到各分区重叠,将就一边,另一边不行,将就另一边,这边又不行,不能保证各区交为空。下来看看UF是如何处理的。
上楼正方形雪花与正三角形雪花造法好象差不多,我抽出其中的部分代码,在UF中运行,得到每边上的雪花图:
KochCurvesq {
; By Samuel Monnier, 3.1.99
init:
  z = #pixel
  x = real(z)
  y = imag(z)
  arg = atan2(z)
  bool bail2 = false

loop:
    x = real(z)
    y = imag(z)
    if abs(x) < 1/@s && abs(y - 1/@s) < 1/@s
      bail2 = true
    endif


    if x < -1/@s && y < -x - 1/@s
      z = 2*@s/(@s-1)*z + (@s+1)/(@s-1)

    elseif x > 1/@s && y < x - 1/@s
      z = 2*@s/(@s-1)*z - (@s+1)/(@s-1)

      elseif x <= -1/@s && y > -x - 1/@s
      z = z + 1/@s
      z = z*exp(-1i*pi/2)
      z = @s*z - 1

    elseif x >= 1/@s && y > x - 1/@s
      z = z - 1/@s
      z = z*exp(1i*pi/2)
      z = @s*z + 1

    elseif abs(x) < 1/@s
      z = @s*z - 2*1i
    endif



bailout:
bail2 == false

default:
  title = "Squarry Koch Curve"
  helpfile = "sam-help/kochcurves.htm"
  helptopic = "skcurve"
  magn = 1
  center = (0.00021,0.0002)
  maxiter = 50
  periodicity = 0

  param s
    caption = "Magnification step"
    default = 4.0
  endparam

}
12.png
我看了代码,完全符合向老师前面的外分法原理,UF的分区相当妙。最近发文件,老半年发不出去,点刷新,才知已经发过去了,怪哉。
New.gif
正方形科赫雪花1支.gsp (18.42 KB)
我今天尝试不用代码作,结果败在分区上。不过,正因为失败,所以一看代码,就完全明白了。失败是成功之母,此言不虚。在与向老师的交流中,得到灵感,解决了以前疑难分形,很是高兴。
附上上楼文件草图:
11.png
218# 柳烟
这个方形雪花很早就由柳老师贴出来了,一直没法解决。今天看了柳老师的UF代码,虽对其一知半解,但也给了我关键启示,终于做出来了。如果按上楼的分区方法,文件还可以更小

方形科赫雪花[外迭代].gsp (12.27 KB)

返回列表