SCREEN 640,480
d=40
c=10000
ys#=0.15
a#=0.0
While KeyDown(27)=0
Color 0,0,0
Cls
For x=-90 To 90
For y=-90 To 90
Color 255,200,200
Dot 300+Sin(a)*(x+y), 250+ys*(y-x)*c/(x*x+y*y+d)
Next y
Next x
a =a+10.0
If a >=360 Then a= -a
Text 265,16,"COPPER STAR"
DrawScreen
wend
Hello, that's a pretty cool retro effect. It's possible to make it faster by using locked framebuffer operations instead of simple Dot. I replaced the Dot command with a PutPixel2 and it's already much faster. Please see the source code below.
SCREEN 640,480
d=40
c=10000
ys#=0.15
a#=0.0
While KeyDown(27)=0
Color 0,0,0
' An ARGB pixel where A = 255, R = 255, G = 200, B = 200
pixel = 255 shl 24 + 255 shl 16 + 200 shl 8 + 200
lock SCREEN()
For x=-90 To 90
For y=-90 to 90
putPixel2 300+sin(a)*(x+y), 250+ys*(y-x)*c/(x*x+y*y+d), pixel
Next y
Next x
unlock SCREEN()
a =a+10.0
If a >=360 Then a= -a
Text 265,16,"COPPER STAR"
DrawScreen
wend