Dunno why, just tried to prove to myself that the point where x and y cross forms a circle, I like circles
Use up and down to increase the speed, and left and right to change the radius:
sync on
sync rate 60
hide mouse
mx=screen width()/2 : my=screen height()/2
ai=5
radius=50
do
if upkey()=1 then inc ai
if downkey()=1 then dec ai
if leftkey()=1 then inc radius
if rightkey()=1 then dec radius
inc a,ai
x=mx+(sin(a)*radius)
y=my+(cos(a)*radius)
ink rgb(0,0,0),0
if a<360 then box 1,1,639,400
if a>360 then box 1,1,639,479 : a=0 : inc a,ai
ink rgb(0,128,0),0
circle mx,my,radius
ink rgb(0,128,255),0
circle mx,my,5
circle x,my,2 : circle mx,y,2
line x,my+(radius),x,my-(radius)
line mx+(radius),y,mx-(radius),y
ink rgb(255,0,255),0
line mx,my,x,my
line mx,my,mx,y
ink rgb(255,0,0),0
circle x,y,2
line mx,my,x,y
ink rgb(0,255,255),0
gx=mx-(radius)-4
gy=my+(radius)+4
line gx,gy,gx+(radius*2)+4,gy
line gx,gy,gx,gy-(radius*2)+4
for g=1 to (radius*2)+4 step 10
line gx+g,gy,gx+g,gy-3
line gx,gy-g,gx+3,gy-g
next g
ink rgb(0,255,0),0
line 130,420,130+360,420
line 130,460,130+360,460
line 130,410,130,430
line 130,450,130,470
line 130+180,410,130+180,430
line 130+180,450,130+180,470
line 130+360,410,130+360,430
line 130+360,450,130+360,470
ink rgb(255,255,255),0
text gx-10,y,"y" : text x,gy+10,"x"
text 100,415,"X: "
text 100,455,"Y: "
line 130+(a-ai),420+sin((a-ai))*10,130+a,420+sin(a)*10
line 130+(a-ai),460+cos((a-ai))*10,130+a,460+cos(a)*10
ink rgb(255,255,0),0
text 10,10,"Angle Increase: "+str$(ai)
text 10,30,"Radius: "+str$(radius)
sync
loop