image
Jam analog apa itu jam analog ?? :)
Jam analog merupakan jam .. Namun dia mempunyai jarum, Nah kira-kira gambarnya seperti ini kurang lebih seperti gambar disamping, Nah pada kesempatan kali ini mari kita membuatnya di VB.NET, seperti biasa, siapkan terlebih dahulu project baru dengan cara File –> New –> New Project dan pilih Windows Application dan beri nama bebas saja :D
Lalu buat design form sebagai berikut :
image

dan tambahkan Control timer dari toolbox, lalu propertiesya atur sebagai berikut :
image Lalu tambahkan code ini di jendela codenya :

   1: Imports System.Math
   2: Public Class Form1
   3:     Dim l As Label
   4:     Const sete = 150
   5:     Const panjangDetik = 100
   6:     Const panjangMenit = 80
   7:     Const panjangJam = 60
   8:  
   9:     Dim Pen As New Drawing.Pen(System.Drawing.Color.Red, 2)
  10:     Dim detik, menit, jam As Integer
  11:     Dim x1, y1, x2, y2 As Integer
  12:     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  13:         Refresh()
  14:  
  15:         detik = Microsoft.VisualBasic.DateAndTime.Second(Now)
  16:         menit = Microsoft.VisualBasic.DateAndTime.Minute(Now)
  17:         jam = Microsoft.VisualBasic.DateAndTime.Hour(Now)
  18:  
  19:         Pen = New Drawing.Pen(System.Drawing.Color.RoyalBlue, 6)
  20:         x1 = Sin(((jam Mod 12) * 30 + menit / 2) * PI / 180 + PI) * panjangJam / 5 + sete 'Tail x
  21:         y1 = Cos(((jam Mod 12) * 30 + menit / 2) * PI / 180) * panjangJam / 5 + sete 'Tail y
  22:         x2 = Sin(((jam Mod 12) * 30 + menit / 2) * PI / 180) * panjangJam + sete 'Head x
  23:         y2 = Cos(((jam Mod 12) * 30 + menit / 2) * PI / 180 + PI) * panjangJam + sete 'Head y
  24:         Me.CreateGraphics.DrawLine(Pen, x1, y1, x2, y2)
  25:  
  26:         Pen = New Drawing.Pen(System.Drawing.Color.Purple, 4)
  27:         x1 = Sin(menit * PI / 30 + detik * PI / 1800 + PI) * panjangMenit / 5 + sete
  28:         y1 = Cos(menit * PI / 30 + detik * PI / 1800) * panjangMenit / 5 + sete
  29:         x2 = Sin(menit * PI / 30 + detik * PI / 1800) * panjangMenit + sete
  30:         y2 = Cos(menit * PI / 30 + detik * PI / 1800 + PI) * panjangMenit + sete
  31:         Me.CreateGraphics.DrawLine(Pen, x1, y1, x2, y2)
  32:  
  33:         Pen = New Drawing.Pen(System.Drawing.Color.Orange, 2)
  34:         x1 = Sin(detik * PI / 30 + PI) * panjangDetik / 5 + sete
  35:         y1 = Cos(detik * PI / 30) * panjangDetik / 5 + sete
  36:         x2 = Sin(detik * PI / 30) * panjangDetik + sete
  37:         y2 = Cos(detik * PI / 30 + PI) * panjangDetik + sete
  38:         Me.CreateGraphics.DrawLine(Pen, x1, y1, x2, y2)
  39:  
  40:     End Sub
  41:  
  42:     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  43:         Dim Angle As Double
  44:         Dim i As Integer
  45:  
  46:         Height = sete * 2.3
  47:         Width = sete * 2
  48:  
  49:         For i = 0 To 11
  50:             Angle = i * PI / 6
  51:             x1 = Sin(Angle) * (panjangDetik + 20) + sete
  52:             y1 = Cos(Angle + PI) * (panjangDetik + 20) + sete
  53:             l = CallByName(Me, "lblDigit" & i, CallType.Get)
  54:             l.Left = x1 - l.Width / 2
  55:             l.Top = y1 - l.Height / 2
  56:         Next
  57:     End Sub
  58: End Class

Project lengkapnya bisa di download disini

1 Komentar

  1. Anonymous // Saturday, July 14, 2012 at 8:59:00 AM GMT+7  

    ga jalan boss