REM ***********************************************
REM Title: Wobbly Circle
REM Author: Phaelax
REM Downloaded from: http://dbcc.zimnox.com/
REM ***********************************************
 
type _segPt
   x as float
   y as float
   alpha as float
endtype
 
 
segments = 20
radius = 100
waveStrength# = 6
angleStep# = 360.0 / segments
 
dim points(segments) as _segPt
 
randomize timer()
 
for i = 1 to segments
   points(i).alpha = rnd(360)
next i
 
sync on
 
 
repeat
   cls
 
   centerX = mousex()
   centerY = mousey()
 
   for i = 1 to segments
      angle# = i*angleStep#
      points(i).alpha = wrapvalue(points(i).alpha + 1)
      alpha# = sin(points(i).alpha)*waveStrength#
 
      sa# = sin(angle#)
      ca# = cos(angle#)
      x# = centerX + sa#*radius + sa#*alpha#
      y# = centerY + ca#*radius + ca#*alpha#
      points(i).x = x#
      points(i).y = y#
      if i > 1
         j = i-1
      else
         j = segments
      endif
      x2# = points(j).x
      y2# = points(j).y
      line x#, y#, x2#, y2#
   next i
 
   set cursor 0,0
   print screen fps()
   sync
until spacekey()
end