aUCBLogo Demos and Tests / clock


be clock [singleshot false][FrameNr 0]
   
f=3
   
cs ht
   
setPenColor 0
   
setLabelAlign 0 0
   
setLabelSize [60 60]
   
setUpdateGraph false
   
forever
   
[   calibrate
      
repeat 60*85
      
[   update
         
if singleshot [stop]
         
if key? [stop]
      
]
   
]

   
be calibrate
      
thetime=time
      
hour=first thetime
      
minute=first bf thetime
      
sec=first bf bf thetime
      
sec0=sec
      
while [sec0==sec]
      
[   thetime=time
         
hour0=first thetime
         
minute0=first bf thetime
         
sec0=first bf bf thetime
         
minute0=minute0+sec0/60
         
hour0=hour0+minute0/60
      
]
      
t0=timefine
   
end

   
be update
      
t=timefine-calibrate::t0
      
hour=calibrate::hour0+t/3600
      
minute=calibrate::minute0+t/60
      
sec=calibrate::sec0+t

      
clearScreen
      
drawface
      
plottimehour hour
      
plottimeminute minute
      
plottimesec sec
      
if singleshot [stop]
      
updateGraph
   
end

   
be drawface
      
setPenSize [2 2]
      
setHeading 30
      
pu
      
repeat 12
      
[   fd 100*f
         
pd  bk 10*f  pu
         
bk 10*f
         
sh=heading
         
setheading 90
         
label repcount
         
setheading sh
         
bk 80*f
         
rt 30
      
]
      
repeat 60
      
[   fd 100*f
         
pd  bk 5*f  pu 
         
back 95*f
         
rt 6
      
]
   
end
   
   
be plottimehour hour
      
setpensize [10 10]
      
setheading hour*30
      
pd
      
fd 50*f
      
pu
      
bk 50*f
   
end
   
   
be plottimeminute minute
      
setpensize [4 4]
      
setheading minute*6
      
pd
      
fd 100*f
      
pu
      
bk 100*f
   
end
   
   
be plottimesec sec
      
setpensize [2 2]
      
setheading sec*6
      
pd
      
fd 100*f
      
pu
      
bk 100*f
   
end
end