Private Type tCircle
X As Double
Y As Double
R As Single
Color As Long
End Type
Private xMove As Double
Private yMove As Double
Private BigCircle As tCircle
Private SmallCircle As tCircle
Private Const PI = 3.14159265
Private Radius As Single
Private dDegree As Single
Const SPEED = 90
Private Function Cosine(ByVal degrees As Single) As Double
Cosine = Cos(degrees * PI / 180)
End Function
Private Function Sine(ByVal degrees As Single) As Double
Sine = Sin(degrees * PI / 180)
End Function
Private Sub Form_Activate()
ScaleMode = 5 'set scale to inches
'FillColor = RGB(255, 255, 255) 'set color to fill circle
'FillStyle = 0 'set transparent or solid
'DrawWidth = 3 'set line weight of cirle
DrawStyle = 0 'set solid =1, dashed=2 or dotted=3
BigCircle.X = ScaleWidth / 2 'centers circle on form
BigCircle.Y = ScaleHeight / 2 'centers circle on form
BigCircle.R = 1
SmallCircle.X = BigCircle.X + BigCircle.R + 0.5
SmallCircle.Y = BigCircle.Y
SmallCircle.R = 0.25
Radius = BigCircle.R + 0.5
dDegree = 0
BigCircle.Color = RGB(255, 255, 255) 'set line color of circle
SmallCircle.Color = RGB(255, 255, 255) 'set line color of circle
'draw the circles
Circle (BigCircle.X, BigCircle.Y), BigCircle.R, BigCircle.Color
Circle (SmallCircle.X, SmallCircle.Y), SmallCircle.R, SmallCircle.Color
End Sub
Private Sub Timer1_Timer()
Dim xDif As Single
'erase the old circle
SmallCircle.Color = Me.BackColor
Circle (SmallCircle.X, SmallCircle.Y), SmallCircle.R, SmallCircle.Color
'move the circle
If dDegree > 360 Then
dDegree = 1
End If
yMove = Sine(dDegree) * Radius
xMove = Cosine(dDegree) * Radius
SmallCircle.Y = BigCircle.Y + yMove
SmallCircle.X = BigCircle.X + xMove
dDegree = dDegree + .5
'draw the circle
SmallCircle.Color = RGB(255, 255, 255) 'set line color of circle
Circle (SmallCircle.X, SmallCircle.Y), SmallCircle.R, SmallCircle.Color
Timer1.Interval = SPEED
End Sub