Jam Analog


‘Buat 1 Form dan 1 Timer

 Option Explicit
Dim xgen, ygen, xmin, ymin, xsec, ysec, xhor, yhor As Double
Dim h, m, s As Date
‘control the minute ‘
Function mint()

If s >= 0 And s < 12 Then
    Call findminangle(CDbl(m))
ElseIf s >= 12 And s < 24 Then
    Call findminangle(CDbl(m) + 0.2)
ElseIf s >= 24 And s < 36 Then
    Call findminangle(CDbl(m) + 0.4)
ElseIf s >= 36 And s <= 48 Then
    Call findminangle(CDbl(m) + 0.6)
ElseIf s >= 48 And s <= 59 Then
    Call findminangle(CDbl(m) + 0.8)
End If
xmin = xgen
ymin = ygen

Line (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2)-(xmin, ymin), RGB(255, 24, 32)
End Function
‘control the second
Function secnd()
    Call findminangle(CDbl(s))
    xsec = xgen
    ysec = ygen
    Line (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2)-(xsec, ysec), RGB(100, 100, 100)
   
End Function
‘control the hour
Function hr()
   
    If m >= 0 And m < 12 Then
        Call findminangle(CDbl(h) * 5)
    ElseIf m >= 12 And m < 24 Then
        Call findminangle(5 * (CDbl(h) + 0.2))
    ElseIf m >= 24 And m < 36 Then
        Call findminangle(5 * (CDbl(h) + 0.4))
    ElseIf m >= 36 And m < 48 Then
        Call findminangle(5 * (CDbl(h) + 0.6))
    ElseIf m >= 48 And m <= 59 Then
        Call findminangle(5 * (CDbl(h) + 0.8))
    End If
    xhor = xgen
    yhor = ygen
    If xhor >= Form1.ScaleWidth / 2 And yhor >= Form1.ScaleHeight / 2 Then
   
        Line (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2)-(xhor – 200, yhor – 200), RGB(0, 0, 255)
    ElseIf xhor <= Form1.ScaleWidth / 2 And yhor >= Form1.ScaleHeight / 2 Then
        Line (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2)-(xhor + 200, yhor – 200), RGB(0, 0, 255)
    ElseIf xhor <= Form1.ScaleWidth / 2 And yhor <= Form1.ScaleHeight / 2 Then
        Line (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2)-(xhor + 200, yhor + 200), RGB(0, 0, 255)
    ElseIf xhor >= Form1.ScaleWidth / 2 And yhor <= Form1.ScaleHeight / 2 Then
        Line (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2)-(xhor – 200, yhor + 200), RGB(0, 0, 255)
    End If
   
End Function
‘draw the clock
Function drawdig()
    Dim i As Integer
    Circle (Form1.ScaleWidth / 2, Form1.ScaleHeight / 2), 1411, RGB(255, 34, 34)
    For i = 5 To 60
        Call findminangle(CDbl(i))
        Form1.CurrentX = xgen – TextWidth(i / 5) / 2
        Form1.CurrentY = ygen – TextWidth(i / 5) / 2
        Form1.Print i / 5
        i = i + 4
    Next
End Function
‘find the co-ordinate
Function findminangle(p As Double)
    Dim temp As Double
   
    temp = 60 – (p – 15)
    temp = temp * 60 * 0.1
    temp = (22 * temp) / (7 * 180)
     
    xgen = (Form1.ScaleWidth / 2) + (1000 * Cos(temp))
    ygen = (Form1.ScaleHeight / 2) – (1000 * Sin(temp))
     
End Function

Private Sub Timer1_Timer()

Form1.Cls

Call drawdig
Form1.Caption = Time()
h = Hour(Time())
m = Minute(Time())
s = Second(Time())

Call mint
Call secnd
Call hr
End Sub

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s