返回列表 回复 发帖
圆形科赫雪花代码详解.gsp (36.34 KB)
New.gif
|z|<1,好象是将点限制在一个以原点为心,半径为1的圆内。我测量了,图片上相邻两球的相似比刚好为@S,如果@S为1,则这些圆半径相等,扫出的图片如下:
New.gif
圆迭代20140627.gsp (6.39 KB)
New.gif
造了三个迭代图,然后将图形合并,还删除了部分多余的迭代象,不知有无更简单的方法?或者一次迭代搞定全图
扫描板的代码,好象也是分三个判断,一个判断搞定一个大分支。
109# changxde
这多出的东西,好象将上面代码再精简,就可得到你的这张图。我昨天在UF中试,得到过这个效果。昨晚再试,试不出来了。按下面代码,造出水平的一枝:
KochCurvecir {

init:
  z = #pixel
  float arg =0
  bool bail = false
  int i = 0
loop:
  i = i + 1
  if i > 1
    if |z| < 1
      bail = true
    endif
  arg = atan2(z)

  if  i > 2
    if arg > 0
      arg2 = 2*pi/3
    else
      arg2 = -2*pi/3
    endif
  endif
    z = z*exp(-1i*arg2)
    z = - @s*z + (1 +@s)
  endif
bailout:
  bail == false
default:
  title = "Circly Koch Curve"
  helpfile = "sam-help/kochcurves.htm"
  magn = .5
  center = (0.00021,0.0002)
  maxiter = 50
  periodicity = 0

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

}
New.gif
将代码改写成画板作M集J集的常用符号的形式,将代码GSP化:
KochCurvecir {

init:
  z = #pixel

loop:
  arg = atan2(z)
  if |z|>1
    if arg > 0
      arg2 = 2*pi/3
    else
      arg2 = -2*pi/3
    endif

    z = z*exp(-1i*arg2)
    z = - @s*z + (1 +@s)
    endif
bailout:
     |z|>1
default:
  title = "Circly Koch Curve"
  helpfile = "sam-help/kochcurves.htm"
  magn = .5
  center = (0.00021,0.0002)
  maxiter = 50
  periodicity = 0

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

}
用画板扫得如下形式:
New.gif
代码意义渐渐清晰起来了,中间那个最大的圆是|Z|<1的圆,其它的圆的内部的点的|z|>1,从et 值看,中间大圆et最小,向外发展,圆越小,et 越大。现在缺右边那根。
KochCurvecir变种.gsp (9.84 KB)
向老师真厉害,很快解决了外围长芽苞的算法,我思考了一天,头脑混乱不堪。只是感觉到圆迭代这个UF例子与此类分形有关。好好学习学习,感谢分享研究成果。
圆科黑雪花分形平面三个交集为空集的区域是按幅角进行画分的。
学习了向老师前面勾股数的几何版本,试搞一个代数版本,空了看看能否将其UF文件搞出来,大家如有兴趣,特别是UF功力好的,赐教赐教,人多智慧大。
勾股树扫描(代数版本).gsp (19 KB)
New.gif
如果取自弧的中点向形外作二个正方形,则勾股树成轴对称,画圈部分放大颇好看的,不失为一种漂亮的分形。但不知能否拿掉?常老师前面自造的那个圆科黑雪花多出的枝叶部分,我估计也与此处画圈的部分相类。
用前面向老师的外围迭代法,练习UF中的谢氏三角形:
New.gif
上面是UF效果。
New.gif
这是GSP效果,脱开UF,按前面向老师方法作。
谢尔宾斯基三角形外围迭代.gsp (191.7 KB)
New.jpg
谢尔宾斯基地毯布外围迭代.gsp (16.77 KB)
返回列表