home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2005 July / PCpro_2005_07.ISO / files / freeware / hardcopy / hcf.exe / basic / Basic_Image_200_AnalogClock.bas < prev    next >
Encoding:
BASIC Source File  |  2003-11-26  |  2.1 KB  |  71 lines

  1. Image( 0 ).Resample( 300,300 )
  2. Font.Align  = _FontAlignCenter
  3. Center_X    = Image(0).Width/2
  4. Center_Y    = Image(0).Height/2
  5. rad            = Image(0).Width/2
  6. if rad > Image(0).Height/2 Then rad = Image(0).Height/2
  7. hhSize = rad / 20
  8. if hhSize < 3 Then hhSize = 3
  9. ssSize = hhSize / 3
  10. if ssSize < 1 Then hhSize = 1
  11. Font.Size     = 2 + hhSize * 2
  12. fSize = Font.Size + 2
  13. rad = rad - hhSize * 2
  14.  
  15. While 1
  16. ss = GetTime( _TimeSecond )
  17. mm = GetTime( _TimeMinute )
  18. hh = GetTime( _TimeHour )
  19. if hh > 12 Then hh = hh - 12
  20. if ss <> ssOld Then 
  21. ssOld = ss
  22. Image( 0 ).Color = _ColorWhite 
  23.  
  24. sek = 0 
  25. for angle = 180 to -180 step -6
  26.     X1 = Center_X + Sin(DegToRad(angle)) * rad 
  27.     Y1 = Center_Y + Cos(DegToRad(angle)) * rad 
  28.     Pen.Width = 1
  29.     Pen.Color = _ColorBlack
  30.     Image(0).EllipseFill( X1-ssSize/2, Y1-ssSize/2, ssSize,ssSize)    
  31.     if sek > 0 and (angle mod 30) = 0 Then
  32.         Pen.Color = _ColorBlue
  33.         Image(0).EllipseFill( X1-hhSize/2, Y1-hhSize/2, hhSize, hhSize)    
  34.         X2 = Center_X + Sin(DegToRad(angle)) * (rad - fSize)
  35.         Y2 = Center_Y + Cos(DegToRad(angle)) * (rad - fSize)
  36.         Image(0).DrawText( X2-fSize/2, Y2-fSize/2, fSize,fSize , sek / 5 ) 
  37.     EndIf
  38.     if sek / 5 = hh Then 
  39.         Xh = Center_X + Sin(DegToRad(angle-mm*30/60)) * (rad - fSize*2)
  40.         Yh = Center_Y + Cos(DegToRad(angle-mm*30/60)) * (rad - fSize*2)
  41.         Xc = Center_X + Sin(DegToRad(angle-mm*30/60)) * -hhSize 
  42.         Yc = Center_Y + Cos(DegToRad(angle-mm*30/60)) * -hhSize 
  43.         Pen.Color = _ColorBlack
  44.         Pen.Width = 3
  45.         Image(0).Line( Xh,Yh, Xc,Yc )
  46.     EndIf    
  47.     if sek = mm Then 
  48.         Xm = Center_X + Sin(DegToRad(angle-ss*6/60)) * (rad - fSize)
  49.         Ym = Center_Y + Cos(DegToRad(angle-ss*6/60)) * (rad - fSize)
  50.         Xc = Center_X + Sin(DegToRad(angle-ss*6/60)) * -hhSize 
  51.         Yc = Center_Y + Cos(DegToRad(angle-ss*6/60)) * -hhSize 
  52.         Pen.Color = _ColorBlack
  53.         Pen.Width = 2
  54.         Image(0).Line( Xm,Ym, Xc,Yc)
  55.     EndIf    
  56.     if sek = ss Then 
  57.         Xc = Center_X + Sin(DegToRad(angle)) * -hhSize*2 
  58.         Yc = Center_Y + Cos(DegToRad(angle)) * -hhSize*2 
  59.         Pen.Color = _ColorBlack
  60.         Pen.Width = 1
  61.         Image(0).Line( X1,Y1, Xc,Yc)
  62.     EndIf
  63.     sek = sek + 1
  64. next
  65. Redraw()
  66. Sleep(500)
  67. Else
  68.   Sleep(10)
  69. endif  
  70. Wend
  71.