Import mojo Class Application Extends App Field mx:Float=-2.2 Field my:Float=-1.2 Field omx:Int=1 Field omy:Int=1 Field z:Float=1.5 Field mi:Int=10 Method OnCreate() SetUpdateRate 25 End Method OnUpdate() If MouseDown(MOUSE_LEFT)=True Then z=z*0.995 If MouseX>(DeviceWidth*0.5) Then mx+=z*(MouseX-(DeviceWidth*0.5))*0.0001 Else mx+=z*(MouseX-(DeviceWidth*0.5))*0.0001 If MouseY>(DeviceHeight*0.5) Then my+=z*(MouseY-(DeviceHeight*0.5))*0.0001 Else my+=z*(MouseY-(DeviceHeight*0.5))*0.0001 mi=10+(0.5/z) End If If MouseDown(MOUSE_RIGHT)=True Then z=z*1.005 If MouseX>(DeviceWidth*0.5) Then mx+=z*(MouseX-(DeviceWidth*0.5))*0.0001 Else mx+=z*(MouseX-(DeviceWidth*0.5))*0.0001 If MouseY>(DeviceHeight*0.5) Then my+=z*(MouseY-(DeviceHeight*0.5))*0.0001 Else my+=z*(MouseY-(DeviceHeight*0.5))*0.0001 mi=10+(0.5/z) End If If MouseDown=False Then mi=mi+10 If mi>100+(100/z*0.25) Then mi=100+(100/z*0.25) End if End Method OnRender() If mi<(100+(100/z*0.25))then DrawFractal(mx,my,z,mi) End if End End 'FUNCTIONS---------------------------------------------------------------- Function Main() New Application() End Function DrawFractal(x:Float,y:Float,z:Float,mi:Int) Local px:Int Local py:Int Local s:Float=(z*Float(0.01)) Local c:Int Local r:Int Local g:Int Local b:Int Local y0:Float=y For px=0 To DeviceWidth y=y0 For py=0 To DeviceHeight c=Mandelbrot(x,y,mi) r=(c*10) Mod 255 SetColor r,0,0 DrawPoint px,py y=y+s Next x=x+s Next SetColor 255,255,255 DrawRect DeviceWidth*0.25-1,DeviceHeight-4,DeviceWidth*0.5+1,3 SetColor 255,0,0 DrawRect DeviceWidth*0.25,DeviceHeight-3,(DeviceWidth*0.5)/(100+(100/z*0.25))*mi,1 End Function Mandelbrot:Int(x1:Float,y1:Float,mi:int) Local i:Int Local an:Float Local x0:Float Local y0:Float Local xn:Float Local yn:Float For i=1 To mi xn=Pow(x0,2)-Pow(y0,2)+x1 yn=2*x0*y0+y1 an=Sqrt(Pow(xn,2)+Pow(yn,2)) If an>2 Then Return i End If x0=xn y0=yn Next End