Sabtu, 05 Desember 2009

Memanfaatkan Shape, Line dan Timer untuk membuat Jam Analog


Untuk membuat jam analog beberapa hal yang perlu diketahui adalah :
1. Menghitung Besar sudut 1 jam, 1 menit dan 1 detik, dimana :
1 Lingkaran Jam = 360 derajat, maka
1 jam = 30 derajat (360/12)
1 menit = 6 derajat (360/60)
1 detik = 6 derajat (360/60)

2. Mengkonversi Jam menjadi Sudut, dimana :
Jam 1 = 60 derajat
Jam 2 = 30 derajat
Jam 3 = 0 derajat
Jam 4 = -30 derajat atau 330 derajat

Rumus deret aritmatika adalah (n-1) * b + a, dimana n adalah suku, a adalah nilai awal, b adalah beda, maka berdasarkan deret diatas :
b = -30
a = 60
Sehingga dapat dirumuskan menjadi :
(Jam – 1) * -30 + 60
Rumuskan sendiri untuk yang menit dan detik
(Menit -1) * -6 + 84
(Detik -1) * -6 + 84
3. Menghitung koordinat Cartesius (x,y) untuk jarum jam, menit dan detik
Untuk menghitung koordinat Cartesius, kita perlu menguraikan suatu koordinat Polar menjadi komponen X dan Y dengan rumus :
X = R Cos Sudut
Y = R Sin Sudut





Dim PanjangJJam As Integer
Dim PanjangJMenit As Integer
Dim PanjangJDetik As Integer
Dim PusatX As Integer
Dim PusatY As Integer
Sub HitungSkala()
Bingkai.Top = 0
Bingkai.Left = 0
Bingkai.Height = Me.ScaleHeight
Bingkai.Width = Me.ScaleWidth
PanjangJJam = (4 / 10 * Me.ScaleHeight) \ 2
PanjangJMenit = (6 / 10 * Me.ScaleHeight) \ 2
PanjangJDetik = (8 / 10 * Me.ScaleHeight) \ 2
PusatX = Me.ScaleWidth \ 2
PusatY = Me.ScaleHeight \ 2
End Sub
Private Sub AturJarumJam()
Dim JamSekarang As Single
Dim SudutJam As Integer
Dim x, y
JamSekarang = (Now - Int(Now)) * 24
SudutJam = (JamSekarang - 1) * -30 + 60
x = PanjangJJam * Cos(SudutJam * 3.14 / 180)
y = PanjangJJam * Sin(SudutJam * 3.14 / 180)
JarumJam.X1 = PusatX
JarumJam.Y1 = PusatY
JarumJam.X2 = PusatX + x
JarumJam.Y2 = PusatY - y
End Sub
Private Sub AturJarumMenit()
Dim WaktuSekarang As Single
Dim MenitSekarang As Integer
Dim sudutmenit As Integer
Dim x, y
WaktuSekarang = (Now - Int(Now)) * 24
MenitSekarang = (WaktuSekarang - Int(WaktuSekarang)) * 60
sudutmenit = (MenitSekarang - 1) * -6 + 84
x = PanjangJMenit * Cos(sudutmenit * 3.14 / 180)
y = PanjangJMenit * Sin(sudutmenit * 3.14 / 180)
JarumMenit.X1 = PusatX
JarumMenit.Y1 = PusatY
JarumMenit.X2 = PusatX + x
JarumMenit.Y2 = PusatY - y
End Sub
Private Sub AturJarumDetik()
Dim WaktuSekarang As Single
Dim DetikSekarang As Integer
Dim SudutDetik As Integer
Dim x, y
WaktuSekarang = (Now - Int(Now)) * 24 * 60
DetikSekarang = (WaktuSekarang - Int(WaktuSekarang)) * 60
SudutDetik = (DetikSekarang - 1) * -6 + 84
x = PanjangJDetik * Cos(SudutDetik * 3.14 / 180)
y = PanjangJDetik * Sin(SudutDetik * 3.14 / 180)
JarumDetik.X1 = PusatX
JarumDetik.Y1 = PusatY
JarumDetik.X2 = PusatX + x
JarumDetik.Y2 = PusatY - y
End Sub
Private Sub AturJarum()
Call AturJarumJam
Call AturJarumMenit
Call AturJarumDetik
End Sub
Private Sub Form_load()
XP = Screen.TwipsPerPixelX
YP = Screen.TwipsPerPixelY
Me.Height = 3000
Me.Width = 3000
Call HitungSkala
Me.Visible = True
Bingkai.Visible = True
Call AturJarum
JarumJam.Visible = True
JarumMenit.Visible = True
JarumDetik.Visible = True
End Sub
Private Sub Timer_Timer()
Call AturJarum
End Sub

0 komentar:

Posting Komentar