返回列表 回复 发帖

UF分形的画板实现(第2集)

Swanson {
;A generic Swanson file.
;Can change the power settings.
init
z= pixel;
loop
z= z^@power + #pixel
z= z(cos(z)^2)+#pixel

bailout
z  4
default
param Power
default= (2,0)
endparam
switch
type= Mandric
power= @power
seed= #pixel
}
画板效果:
未命名.JPG
放大左边某小片的效果
未命名2.JPG
Swanson.gsp (39.16 KB)
上楼的文件中,参数K为正整数,取不同的值得不同的M集,将上楼的文件的K改为复数,更一般化了。制成后,我与UF面板中的图进行比较,当为虚数时,GSP扫出的图片与UF有少许不同,大体吻合。我用的是坛上现成的工具z^W,不知此工具是否有问题还是怎么的,那位高中教师帮忙制制这个工具,我想你们对复数要熟悉得多,咱丢得有点远了。
这是K=4的情形
未命名.JPG
这是K=2+i的情形
未命名1.JPG
而K=2+i时,UF中效果却是

Swanson1.gsp (40.02 KB)

Fractal2.png (25.25 KB)

Fractal2.png

F(x)=z^L-J的牛集(广义)
UF
Fractal2.JPG
GSP
未命名1.JPG
未命名3.JPG
上图片用了向老师的平滑着色法。
Newton(F(x)=z^L-J的牛集(广义).gsp (46.28 KB)
楼上二位老师好。“革命”尚未成功,大家齐心协力。
平滑着色法实践结果,不错。榕老师说工具没问题,今天我继续用的结果,确实没问题。谢谢工具的制作者们。提供者们。
Hyperbon {
;As with Mandric, incorporates trigonomic
;functions. Allows user to choose Bailout and
;power.
;
init:
z= 0;
complex pix= #pixel

loop:
z= sin(cos(z)^@power) + pix
z= (z / 2+ z^2) + #pixel
bailout:
|z| < @bailout
default:
param Power
default= (2,0)
endparam

param Bailout
default= 6
endparam
}
这个分形本来简单,可今天我干了四五次,最后一次与UF对照,发现不对,又检查,发现对的,只是逃逸参数那个地方稍微修改了一下,结果对头了,累!
未命名3.JPG
未命名44.JPG
改变复参数power,或改变阈值,这个M集有得玩。
Hyperbon.gsp (40.8 KB)
lambdafn {
init:
  z = pixel
loop:
  z = @lambda * fn1(z)
bailout:
  |z| < @bailout
default:
  title = "Lambda c * fn(z)"
  maxiter = 149
  magn = 0.5
  param lambda
    caption = "Parameter"
    default = (1, 0.4)
  endparam
  param bailout
    caption = "Bailout value"
    default = 64.0
    min = 1
  endparam
  func fn1
    caption = "First Function"
    default = sin()
  endfunc
switch:
  type = "mandelfn"  
  bailout = bailout
  fn1 = fn1
}
本来想弄出UF是的fn为sin时的效果,可是后半部分代码复杂,不很懂,所以弄不出:
Fractal2.JPG
结果弄出这个冬冬,也美得可以:
未命名.JPG
未命名.JPG
Lambda c乘fn(z)的变种.gsp (30.6 KB)
再扫一图
未命名1.JPG
fn*z+z {
init:
  z = pixel
loop:
  z = (@first * fn1(z) + @second) * z
bailout:
  (@test == 0 && |z| <= @bailout) ||                                         \
  (@test == 1 && sqr(real(z)) <= @bailout) ||                                \
  (@test == 2 && sqr(imag(z)) <= @bailout) ||                                \
  (@test == 3 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) ||   \
  (@test == 4 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) ||   \
  (@test == 5 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) ||          \
  (@test == 6 && (sqr(real(z) + imag(z)) <= @bailout))
default:
  title = "fn * z + z"
  magn = 0.5
  maxiter = 149
  param first
    caption = "First Coefficient"
    default = (1,0)
  endparam
  param second
    caption = "Second Coefficient"
    default = (1,0)
  endparam
  param test
    caption = "Bailout Test"
    default = 0
    enum = "mod" "real" "imag" "or" "and" "manh" "manr"
  endparam
  param bailout
    caption = "Bailout value"
    default = 64.0
    min = 1.0
  endparam
GSP图----fn(z)=sinz
6291.JPG
GSP图----fn(z)=cosz
6292.JPG
GSP图----fn(z)=sinhz
6293.JPG
GSP图----fn(z)=coshz
6294.JPG
fn (z) + z.gsp (27.98 KB)
8楼改变一下逃逸参数中的阈值,结果与UF中的正牌效果一致。
未命名.JPG
未命名.JPG
Lambda_cfn(z).gsp (30.61 KB)
mandelfn {
init:
  z = @start + #pixel
loop:
  z = #pixel * fn1(z)
bailout:
  |z| < @bailout
default:
  title = "Mandelbrot c * fn(z)"
  maxiter = 149
  magn = 0.25
  param start
    caption = "Perturbation"
    default = (0,0)
  endparam
  param bailout
    caption = "Bailout value"
    default = 64.0
    min = 1
  endparam
  func fn1
    caption = "First Function"
    default = sin()
  endfunc
switch:
  type = "lambdafn"
  lambda = pixel
  bailout = bailout
  fn1 = fn1
}
我这文件源于UF,又高于UF,我选用了四个函数,搞了些开关,这些单个函数及其任意几个的和均可扫出M集,有27个左右,我公布几张我扫出的几张图片,板友们有兴趣,自已去扫。
未命名1.JPG
未命名2.JPG
未命名4.JPG
未命名6.JPG
Mandelbrot cfn(z).gsp (25.49 KB)
sqr[1/fn] {
; Written by Luke Plant
; Modified by Frederik Slijkerman
init:
  complex z = pixel

loop:
  z = sqr(1/fn1(z))

bailout:
  (@test == 0 && |z| <= @bailout) ||                                        \
  (@test == 1 && sqr(real(z)) <= @bailout) ||                               \
  (@test == 2 && sqr(imag(z)) <= @bailout) ||                               \
  (@test == 3 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) ||  \
  (@test == 4 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) ||  \
  (@test == 5 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) ||         \
  (@test == 6 && (sqr(real(z) + imag(z)) <= @bailout))
  
default:
  title = "Sqr(1/fn(z))"
  center = (0,0)
  magn = 0.5
  maxiter = 149
  param test
    caption = "Bailout Test"
    default = 0
    enum = "mod" "real" "imag" "or" "and" "manh" "manr"
  endparam
  param bailout
    caption = "Bailout value"
    default = 64.0
    min = 1
  endparam
  func fn1
    caption = "First Function"
    default = sin ()
  endfunc
}
造的GSP文件中,开关多,参数多,复分形多,改变函数,或改变参数K,或将函数任意组合都成,同一函数,同一参数K,改变mode\real\imag……,又可得到不同的分形,今晚我都没法扫完我这文件中的所有分形图片呀。分形产生的图片结构实在美不胜收,试扫几张。
GSP图片
未命名1.JPG
未命名2.JPG
未命名3.JPG
未命名44.JPG
Sqr(1除fn(z))1.gsp (34.19 KB)

未命名5.JPG (18.74 KB)

未命名5.JPG

返回列表