sam.ufm中的范例。
sierpinskimod {
; Written by Luke Plant
; Modified by Frederik Slijkerman
; Modified by Samuel Monnier
; (Twist functions added)
init:
complex z = #pixel
loop:
IF (imag(z)>0.5)
z = @f1(2*real(z) + flip(2*imag(z)-1))
(满足条件imag(z)>0.5时,执行此语句z = @f1(2*real(z) + flip(2*imag(z)-1))
,按此算出的点进行迭代。)
ELSEIF (real(z)>0.5)
z = @f2(2*real(z)-1 + flip(2*imag(z)))
(如果imag(z)>0.5不成立,但是real(z)>0.5成立,则执行此语句进行迭代)
ELSE
z = @f3(2*real(z) + flip(2*imag(z)))
(如果条件imag(z)>0.5与条件real(z)>0.5都不成立时,则执行z = @f3(2*real(z) + flip(2*imag(z))) ,并按此进行迭代。上面的f1,f2,f3均为不同的复函数,面板上点选不同的复函数,则产生不同的复分形。)
ENDIF
bailout:
|z| < @bailout
default:
title = "Twisted Sierpinksi Triangle"
center = (0.4, 0.4)
magn = 1.1538
maxiter = 149
method = multipass
periodicity = 0
param bailout
caption = "Bailout value"
default = 127
min = 1
endparam
func f1
caption = "Function 1"
default = ident()
endfunc
func f2
caption = "Function 2"
default = ident()
endfunc
func f3
caption = "Function 3"
default = ident()
endfunc
}
UF面板上的图,是当f1=f2=f3=ident(z)=z的情形。我下面的视频文件中,除造此外,再造一个f1=f2=f3=abs(z)=|x|+|y|i,为此,我弄一个开关,以产生这二种情形。 |