вот второй вариант (кто больше):
Graphics 640,480,32,2
SetBuffer BackBuffer()
For i=1 To 12
a#=0
Color 120-i*10,255-i*20,40-i
While a<360
a=a+0.01
R# = (1+Sin(a))*(1-.9*Abs(Sin(4*a)))*(.9+.05*Cos(200*a))
x#=320+Sin(a+90)*R*(200-(i*10))
y#=400+Cos(a+90)*R*(200-(i*10))
Plot x,y
Wend
Next
Dim buff(640,480,3)
LockBuffer BackBuffer()
For i=1 To 640
For j=1 To 480
buff(i,j,0)=ReadPixelFast(i,j,BackBuffer())
buff(i,j,1)=r(buff(i,j,0))
buff(i,j,2)=g(buff(i,j,0))
buff(i,j,3)=b(buff(i,j,0))
Next
Next
For i=2 To 639
For j=2 To 479
r_=0
g_=0
b_=0
For dx=-1 To 1
For dy=-1 To 1
r_=r_+buff(i+dx,j+dy,1)
g_=g_+buff(i+dx,j+dy,2)
b_=b_+buff(i+dx,j+dy,3)
Next
Next
buff(i,j,0)=rgb(r_/9,g_/9,b_/9)
Next
Next
For i=1 To 640
For j=1 To 480
WritePixelFast i,j,buff(i,j,0),BackBuffer()
Next
Next
UnlockBuffer BackBuffer()
Flip
WaitKey
Function rgb(r,g,b)
Return r Shl 16 Or g Shl 8 Or b
End Function
Function r(v)
Return v Shr 16 And $FF
End Function
Function g(v)
Return v Shr 8 And $FF
End Function
Function b(v)
Return v And $FF
End Function