返回列表 回复 发帖
juliatrap(BOTH) {
; By Samuel Monnier, 1999
init:
  bool first = true
  count = 0
  float stdz = 0.0
  start = @seed

loop:
  trz = exp(flip(-pi/180*@rot))*(#z-@center)/@size
  x = 1/sqrt(@r)*real(trz)
  y = sqrt(@r)*imag(trz)
  if @freq != 0
    x = 2*sin(2*pi*@freq*x)
    y = 2*sin(2*pi*@freq*y)
  endif
  trz = x + flip(y)
  zz = trz
  float i = 0
  iter = @niter
  float dz = 0.0

    start = zz
    zz = @seed


  while i < @niter
    i = i + 1
    zz = zz^2 + start
    if |zz| > 1e20
      iter = i
      i = @niter
    endif

  endwhile
  float logp = 1/log(2)
  float logb = log(log(1e20))

    dz = real(iter + logp*logb - logp*log(log(cabs(zz))))


    if first
      stdz = dz
      first = false
    elseif dz > stdz
      stdz = dz
    endif

final:
  #index = .1*stdz
default:
  title = "Julia Trap"
  helpfile = "sam-help/juliatrap.htm"

  param seed
    caption = "Seed (for 'custom')"
    default = (0,0)
  endparam
  param center
    caption = "Center"
    default = (1,1)
  endparam
  param rot
    caption = "Rotation"
    default = -30.0
  endparam
  param size
    caption = "Size"
    default = 0.38750
  endparam
  param r
    caption = "Ratio Width/Heigh"
    default = 1.0
  endparam
  param @niter
    caption = "Julia Iterations"
    default = 100
  endparam
  param freq
    caption = "Trap Frequency"
    default = 0.0
  endparam
}
更新了代码。
里面有个嵌套循环,可能有占麻烦。
84# 榕坚
就是你说的第二条,老是迷不穿。
88# 榕坚
呵呵,当时觉得这种变换的图不怎么样,还是那个等边三角形的谢氏图案美,所以删掉了,诚如你所说,人是有点懒了,不过,这功能也易,添一个判断进去。问好。
顺便问问:M集陷阱第二条,当一个复分形迭代终点为zn',如何建立与M集的迭代终点zn建立判断,以知晓其落入M集上?
我昨天研究了一天嵌套循环,好象用GSP能够实现嵌套循环时满足某条件,嵌套循环终止并退出的问题,我调看了迭代表后得知,可惜作以前一个分形,扫出的图不对劲,昨天一天没找到原因。这个分形是:
http://www.inrm3d.cn/viewthread.php?tid=3225&extra=page%3D2
一二楼。
此分形一直没作出,成为一块心病,此分形意义重大。
92# 榕坚
仅将前面的那个谢氏画板文件中的z的初值横坐标x[z]编辑计算:x[pixel] - @trt*y[pixel] ,其余的都原封不动,立马得到这效果。x[pixel]、y[pixel]  为pixel的横标,纵标。
未命名.jpg
if first
      stdz = dz
      first = false
    elseif dz > stdz
      stdz = dz
    endif

这段代码不知何意,但是这几句代码又重要。做出的图相去甚远,连陷阱的影子都没见着,思维越来越理不清头绪了。榕兄此分形作出来没有?
95# xiaongxp
问好向老师,太费脑筋了,有时忙乎老半天,结果得到虚无,烦。
修改了那段费解代码,按下面代码作,在UF中对照了一下,好象与UF中的效果一致。
juliatrap1(BOTH) {
; By Samuel Monnier, 1999
init:
  float dz = 0.0
  float stdz = 0.0
  start = @seed

loop:
  trz = exp(flip(-pi/180*@rot))*(#z-@center)/@size
  x = 1/sqrt(@r)*real(trz)
  y = sqrt(@r)*imag(trz)
  if @freq != 0
    x = 2*sin(2*pi*@freq*x)
    y = 2*sin(2*pi*@freq*y)
  endif

  start = x + flip(y)

  iter = @niter
  zz = @seed

  float i = 0
  while i < @niter
    i = i + 1
    zz = zz^2 + start
    if |zz| > 1e20
      iter = i
      i = @niter
    endif

  endwhile
  float logp = 1/log(2)
  float logb = log(log(1e20))

    dz = real(iter + logp*logb - logp*log(log(cabs(zz))))

    if dz >stdz
      stdz = dz
    endif

final:
  #index = .1*stdz
default:
  title = "Copy of Julia Trap"
  helpfile = "sam-help/juliatrap.htm"

  param seed
    caption = "Seed (for 'custom')"
    default = (0,0)
  endparam
  param center
    caption = "Center"
    default = (1,1)
  endparam
  param rot
    caption = "Rotation"
    default = -30.0
  endparam
  param size
    caption = "Size"
    default = 0.38750
  endparam
  param r
    caption = "Ratio Width/Heigh"
    default = 1.0
  endparam
  param @niter
    caption = "Julia Iterations"
    default = 100
  endparam
  param freq
    caption = "Trap Frequency"
    default = 0.0
  endparam
}
我按此代码作出图后,逃逸区,参数值与面板上的值不完全一致,有问题。这变种图是:
未命名.jpg
之所以与UF有差别,原因在于那循环,用画板如何实现,是个迷,也许终难实现。我是按逃逸时间算法造那循环的M集陷阱,所以等势圈过于花梢。
返回列表