Introduction
This is your basic analog clock using Cos, Sin, Theta, and the form's aspect ratio to draw the circles and gather the placement of the markers and hands. This is my first submission on here, and I hope it is useful to someone out there. The code is heavily documented, and there is also a demo download.
Background
I first wrote the code for this way back in the QB 4.5 days, and later converted it to Flash MX. I was bored on one of my days off, and really didn't feel like working on the other projects I have going, so I did this for old time sakes. I hope you enjoy it.
Using the code
I separated the main drawings into different Sub
s to make the code easier to follow and understand.
The main sub that is called is the Draw_Graphics()
and it calls the other Sub
s to do the drawing. I am using a Bitmap
object and a Graphics
object to paint the pictures, and then I push the picture to the form to prevent flickering.
Private Sub Draw_Graphics()
Draw_Clock_Base()
Draw_Clock_Face()
Draw_Clock_Markers()
Draw_Clock_DateTime()
Draw_Clock_Hands()
End Sub
These objects and variables are used in the full scope of the form. Other variables are used within the Sub
s.
Dim bm As Bitmap
Dim g As Graphics
Dim PI As Double = 3.14159
Dim XC, YC, X, Y, R, OldSec As Integer
Dim Theta, AspectRatio As Double
Points of Interest
I don't do a lot of graphics programming, so when working with the DrawPolygon
command, it kept wanting to default the last location to (0,0) and I couldn't figure out why, so I ended up drawing the lines manually. If anyone has any suggestions, please let me know.