How to make a Analog clock!

Heres your chance to share your own tutorials with the community. Just post them on here. If your lucky they may even be posted on the main site.
1 post Page 1 of 1
Contributors
User avatar
Proprogrammer
VIP - Donator
VIP - Donator
Posts: 415
Joined: Sun Oct 03, 2010 11:14 pm

How to make a Analog clock!
Proprogrammer
What will i need?
- 12 labels(have text equal the same it is named such as label1 = 1, and so on, you do not need to place them in a certain place the code will do it for you! :mrgreen: )
- 2 timers(enable both timers)

Form1_load event
Code: Select all
Label1.Location = New Point(505, 203)

        Label2.Location = New Point(561, 261)

        Label3.Location = New Point(592, 335)

        Label4.Location = New Point(561, 404)

        Label5.Location = New Point(505, 464)

        Label6.Location = New Point(430, 489)

        Label7.Location = New Point(357, 463)

        Label8.Location = New Point(305, 408)

        Label9.Location = New Point(272, 334)

        Label10.Location = New Point(302, 259)

        Label11.Location = New Point(354, 200)

        Label12.Location = New Point(430, 177)

    End Sub
 

Timer1_Tickevent
Code: Select all
 'timer1 will draw the hands of the clock

        'convert seconds to angles

        Dim seconds As Integer = (Now.Second * 6) + 270

        'convert minutes to angles

        Dim minutes As Integer = (Now.Minute * 6) + 270

        'convert hours to angles

        Dim hours As Integer = (Now.Hour * 30) + 270

        'text label will hold the current time

        Time.Text = Now

         'creating graphics

        Dim g As Graphics

        g = Me.CreateGraphics

         'generating pens

        Dim hour As New Pen(Color.Blue)

        Dim hour2 As New Pen(Color.White)

        Dim second As New Pen(Color.Black)

        Dim minute As New Pen(Color.Red)

        Dim minute2 As New Pen(Color.White)

        Dim white As New Pen(Color.White)

        Dim circle As New Pen(Color.Black)

         'assigning pens width

        hour.Width = 8

        hour2.Width = 10

        second.Width = 1

        minute.Width = 4

        minute2.Width = 4

        white.Width = 10

        circle.Width = 5

         'draws hands of the clock and their locations

         g.DrawPie(hour2, 319, 219, 240, 240, hours - 30, 360)

        g.DrawPie(minute2, 289, 189, 300, 300, minutes - 6, 360)

        g.DrawPie(Pens.White, 269, 169, 340, 340, seconds - 6, 360)

        g.DrawPie(hour, 319, 219, 240, 240, hours, 360)

        g.DrawEllipse(white, 319, 219, 240, 240)

        g.DrawPie(minute, 289, 189, 300, 300, minutes, 360)

        g.DrawEllipse(white, 289, 189, 300, 300)

        g.DrawPie(second, 269, 169, 340, 340, seconds, 360)

        g.DrawEllipse(white, 269, 169, 340, 340)

         'Draws a circle around the clock

        g.DrawEllipse(circle, 249, 149, 380, 380)

 
    End Sub


Timer2_tickevent
Code: Select all
 ' timer2 will draw the shape of the clock and the marks

        tick += 6

        tick2 += 30

        Dim g As Graphics

        Dim hoursMarks As New Pen(Color.Black)

        hoursMarks.Width = 5

 

        g = Me.CreateGraphics

 

        g.DrawPie(Pens.Black, 249, 149, 380, 380, tick, 360)

        g.DrawPie(hoursMarks, 249, 149, 380, 380, tick2, 360)

        g.DrawEllipse(Pens.White, 269, 169, 340, 340)

        g.FillEllipse(Brushes.White, 269, 169, 340, 340)

        If tick > 800 Then

            'drawing the shape is done and the timer will stop

            Timer2.Stop()

            tick = 270

            tick2 = 270

        End If

    End Sub
This is what it should look like!

Image

That is all! It is all in the code! ;)
Have fun!
+ Rep to me!
------------------------------------------------------------------------------
Proprogrammer, not just a Programmer.
1 post Page 1 of 1
Return to “Tutorials”