SCREEN 600, 600
 
taulu = MakeImage(600, 600)
DrawToImage taulu
 
// Laitetaan ulkoreunoihin himmennystä
For i = 1 To 10
	Color i * 23, i * 17, 0
	Circle 44 + i, 44 + i, 600 - (44 + i) Shl 1
Next i
 
// Piirretään oranssit reunukset
Color 230, 170, 0
Circle 55, 55, 600 - 110
 
// Himmennetään reunojen ja kellotaulujen välinen osa
For i = 1 To 10
	Color 230 - i * 23, 170 - i * 17, 0
	Circle 66 + i, 66 + i,600 - (66 + i) Shl 1
Next i
 
// Kellotaulun harmaa tausta
Color 50, 50, 50
Circle 75, 75, 450
Color 255, 255, 255
 
// Piirretään numero 1-12 ja niiden taakse paksumpi pallero
For i= 12 To 1 Step -1
	Text 300 + Cos(90 - i * 30) * 210 - (TextWidth("" + i) Shr 1), 300 - Sin(90 - i * 30) * 210 - (TextHeight("" + i) Shr 1), i
	Circle 300 + Cos(90 - i * 30) * 220 - 3, 300 - Sin(90 - i * 30) * 220 - 3, 6
Next i
 
// Pienemmät pallerot ympäri kellotaulua
For i = 1 To 60
	Circle 300 + Cos(90 - i * 6) * 220 - 1, 300 - Sin(90 - i * 6) * 220 - 1, 2
Next i
 
DrawToScreen
Repeat
	DrawImage taulu, 0, 0
	SetWindow "Kello: " + Time()
 
	// Parsitaan tunnit, minuutit ja sekunnit erillisiin muuttujiin
	h = Int(GetWord(Time(), 1, ":"))
	m = Int(GetWord(Time(), 2, ":"))
	s = Int(GetWord(Time(), 3, ":"))
 
	Color 255, 255, 255
	For i = 12 To 1 Step -1
		Text 300 + Cos(90 - i * 30) * 210 - (TextWidth("" + i) Shr 1),300 - Sin(90 - i * 30) * 210 - (TextHeight("" + i) Shr 1), i
	Next i
 
	// Piirretään harmaat viivat minuuttien ja tuntien alapuolelle
	// Pehmentämään viivoja
	Color 100, 100, 100
	// Minuuttiviisarin kulma on 90-(m)*6-(s/10)
	// -s/10 asettaa minuuttiviisarin liikkumaan myös sekuntien mukaan jolloin vältytään yhtäkkisiltä tökkäisyiltä
	Line2(300, 300, 300 + Cos(90 - m * 6 - s / 10) * 190, 300 - Sin(90 - m * 6 - s / 10) * 190, 6)
	Line2(300, 300, 300 + Cos(90 - h * 30 - m Shr 1) * 150, 300 - Sin(90 - h * 30 - m Shr 1) * 150, 6)
	Color 255, 255, 255
 
	// Piirretään vielä ohuemmat viivat harmaiden minuutti- ja tunti viisareiden päälle
	Line2(300, 300, 300 + Cos(90 - m * 6 - s / 10) * 190, 300 - Sin(90 - m * 6 - s / 10) * 190, 3)
	Line2(300, 300, 300 + Cos(90 - h * 30 - m Shr 1) * 150, 300 - Sin(90 - h * 30 - m Shr 1) * 150, 3)
 
	// Piirretään punainen sekuntiviisari
	// Koska sekunteja on vain 60 kulma lasketaan sekuntit*6 ja vähennetään kulma 90:stä(kellotaulun yläreuna)
	Color 255, 0, 0
	Line 300, 300, 300 + Cos(90 - s * 6) * 200, 300 - Sin(90 - s * 6) * 200
 
	// Piirretään vielä keskiosa kelloa koristamaan
	For i = 1 To 5
		Color i * 25, i * 25, i * 25
		Circle 290 + i, 290 + i, 20 - i Shl 1
	Next i
	DrawScreen
Forever
 
// Funktio jolla voi piirtää viivan määräten itse paksuuden
Function line2(x#, y#, x2#, y2#, w=1)
	xx# = x#
	yy# = y#
 
	//Otetaan kulma pisteiden väliltä
	ang# = GetAngle(xx#, yy#, x2#, y2#)
 
	// Jos etäisyys on enemmän kuin 1 siirrytään etiä päin
	While Distance(xx#, yy#, x2#, y2#) > 1
		// Piirretään pallo niin, että sen keksipiste sattuu kohtaan missä ollaan menossa
		Circle xx# - w Shr 1, yy# - w / 2, w
		// Kasvatetaan x ja y koordinaatteja pisteiden välisen kulman mukaan
		xx# = xx# + Cos(ang#)
		yy# = yy# - Sin(ang#)
	Wend
EndFunction