Julia Set Windowed and full screen below (felt sorry for Cpl.Bator who will protest unless it runs on Linux
Code: Select all
;*****************************************************************************
;*
;* Name :Julia Set windowed - windows only
;* Author :Idle
;* Date :16/06/2009
;* Notes :Windows Only
;* ***** > Disable debugger < *****
;* :A / Z = zoom :
;* :S / X = change Real
;* :D / C = change Imaginary
;* :UP / DOWN / LEFT / RIGHT = Move
;* :Esc = quit
;*****************************************************************************
Macro _(k):GetAsyncKeyState_(k)&1:EndMacro:Macro e:ElseIf:EndMacro:InitSprite()
Macro ca(a,b):(a-w/2)/(0.5*z*w)+(1/w*(b-(w/2))):EndMacro:Global w=512,z.f=1.0
Macro F(a,b):For a=0 To b-1:EndMacro:Global cI.f=0.26015,cR.f=-0.72,nR.d,nI.d
Global aR.d,aI.d,px.f=w/2,py.f=px:OpenWindow(0,0,0,w,w,"julia set"):Repeat
StartDrawing(WindowOutput(0)):f(x,w):f(y,w):nR=ca(x,px):nI=ca(y,py):f(i,128)
aR=nR:aI=nI:nR=aR*aR-aI*aI+cR:nI=2*aR*aI+cI:If((nR*nR+nI*nI)>4):Break:EndIf
Next:c=Pow(i,4):Plot(x,y,c):Next:Next:StopDrawing():Delay(20):If _(65):z*2
e _(90):z/2:e _(83):cI+0.001:e _(88):cI-0.001:e _(68):cR+0.001:e _(67)
cR-0.001:e _(39):px+(4/z):e _(37):px-(4/z):e _(38):py-(4/z):e _(40):py+(4/z)
e _(#VK_ESCAPE):q=1:EndIf:Until q=1 Or WindowEvent()=16
full screen cross platform
Code: Select all
;*****************************************************************************
;*
;* Name :Julia Set Full Screen cross platform
;* Author :Idle & PeterB
;* Date :16/06/2009
;* Notes :Not Windows Only
;* ***** > Disable debugger < *****
;* :A / Z = zoom :
;* :S / X = change Real
;* :D / C = change Imaginary
;* :UP / DOWN / LEFT / RIGHT = Move
;* :Esc = quit
;*****************************************************************************
Macro _(k):ElseIf KeyboardPushed(k):ch=1:EndMacro:Macro F(a,b):For a=0 To b-1
EndMacro:InitSprite():InitKeyboard():cI.f=0.26015:cR.f=-0.72:a.f=0.001:h=600
w=800:h2=h/2:w2=w/2:s.f=w2:t.f=h/2:z.f=1:OpenScreen(w,h,32,""):ch=1:Repeat
ExamineKeyboard():If ch:StartDrawing(ScreenOutput()):v1.f=z*w2:v2.f=z*h2
u1.f=1/w*(s-w2):u2.f=1/h*(t-h2):f(x,w):f(y,h):R.f=(x-w2)/v1+u1:I.f=(y-h2)/v2+u2
f(j,128):aR.f=R:aI.f=I:R=aR*aR-aI*aI+cR:I=2*aR*aI+cI:If R*R+I*I>4:Break:EndIf
Next:Plot(x,y,Pow(j,4)):Next:Next:StopDrawing():FlipBuffers():ClearScreen(0)
ch=0:EndIf:Delay(5):If 1=2:_(30):z*2:_(44):z/2:_(31):cI+a:_(45):cI-a:_(32):cR+a
_(46):cR-a:_(205):s+(4/z):_(203):s-(4/z):_(200):t-(4/z):_(208):t+(4/z):_(1):q=1
EndIf:Until q=1