; TheChange@yahoo.com
Const ScreenSizeX = 320
Const ScreenSizeY = 240
Const Offset = 6400 ; Nicely set wide spread and starting offset
Const Initial = 300000000 ; Initial divisor value
Const Minimum# = 0.000002 ; Ultimate target value after dissolving
Const DecrementFactor# = 1.01 ; Decrement speed factor of progress
Const FrameRate = 30 ; Minimal program update frequency
Const FrameDelay = 1000 / FrameRate ; Minimum amount of millisecs for each frame
Graphics ScreenSizeX , ScreenSizeY , 32 ; 32 bits for high detail color flow
OffsetX = ScreenSizeX / 2 ; Middle of the screen is middle of equation
OffsetY = ScreenSizeY / 2
RangeX# = ScreenSizeX / 2 ; Wide screen setup
RangeY# = ScreenSizeY / 3
Divisor# = Initial ; Divisor is main factor of progress
SetBuffer FrontBuffer()
LockBuffer
Repeat
starttime = MilliSecs ()
; Decrease value of divisor
If divisor > minimum
divisor = divisor / decrementfactor
Else
Exit
End If
; Draw the equation
For x = -rangex To rangex
For y = -rangey To rangey
finalx = offsetx + x
finaly = offsety + y
; Range checking
If finalx >= 0
If finalx < ScreenSizeX
If finaly >= 0
If finaly < ScreenSizeY
; Magical formula = axis1 * axis2
WritePixelFast finalx , finaly , (x*y*Offset)/divisor
End If
End If
End If
End If
Next
Next
; Slow the program down if this frame was updated too fast
endtime = MilliSecs ()
frametime = endtime - starttime
If frametime < framedelay
framewait = framedelay - frametime
Delay framewait
End If
Until KeyHit ( 1 )
UnlockBuffer
End
               (
geocities.com/thechange)