| Zegar analogowy |
|
Program Zegar;
Uses Dos,Crt,Graph; Var s,t : Integer; Procedure Linia(a,b,l,ll : Word; k : Integer); Var x,y,xx,yy : Real; Begin x:=l*cos((k-90)*Pi/180); y:=l*sin((k-90)*Pi/180); xx:=ll*cos((k-90)*Pi/180); yy:=ll*sin((k-90)*Pi/180); Line(Round(a+xx),Round(b+yy),Round(a+x),Round(b+y)); End; Procedure Zeg(x,y,r : Word); Var g,m,mm,s,ss,sc,i : Word; Begin SetColor(0); SetFillStyle(1,0); Circle(x,y,Round(0.9*r)); FloodFill(x,y,Black); SetColor(Blue); SetFillStyle(1,1); Circle(x,y,Round(0.95*r)); Circle(x,y,Round(0.9*r)); FloodFill(Round(x+0.95*r-1),y,Blue); SetColor(DarkGray); SetFillStyle(1,8); Circle(x,y,r); Circle(x,y,Round(0.95*r)); FloodFill(x+r-1,y,DarkGray); SetColor(LightGreen); For i:=0 to 11 do Linia(x,y,Round(0.95*r),Round(0.9*r),i*30); SetColor(Yellow); For i:=0 to 59 do Linia(x,y,r,Round(0.95*r),i*6); Repeat SetLineStyle(0,0,3); mm:=m; ss:=s; GetTime(g,m,s,sc); SetColor(0); If s<>ss then Begin Linia(x,y,Round(0.55*r),Round(0.01*r),Round((g+mm/60)*30)); Linia(x,y,Round(0.7*r),Round(0.01*r),Round((m+ss/60)*6)); Linia(x,y,Round(0.8*r),Round(0.01*r),ss*6); End; SetColor(Green); Linia(x,y,Round(0.8*r),Round(0.01*r),s*6); SetColor(Red); Linia(x,y,Round(0.7*r),Round(0.01*r),Round((m+s/60)*6)); SetColor(Yellow); Linia(x,y,Round(0.55*r),Round(0.01*r),Round((g+m/60)*30)); Until KeyPressed; End; Begin s:=VGA; t:=VGAHi; InitGraph(s,t,'C:\BP\BGI'); Zeg(320,239,230); CloseGraph; End. |
;



