Uses Graph,CRT; Var d,r,r1,r2,rr,k, x1,y1,x2,y2,x01,y01: Integer; Xasp, Yasp: Word; begin d := detect; InitGraph(d,r,''); x1 := GetMaxX div 2; y1 := GetMaxY div 2; GetAspectRatio(Xasp,Yasp); r:= round(3*GetMaxY*Yasp/8/Xasp); r1:= round(0.9*r); r2:= round(0.95*r); Circle(x1,y1,r); Circle(x1,y1,round(1.02*r)); for k := 0 to 59 do begin if k mod 5 = 0 then rr:=r1 else rr:=r2; x01:= x1 + round(rr*sin(2*pi*k/60)); y01:= y1 - round(rr*Xasp*cos(2*pi*k/60)/Yasp); x2:= x1 + round(r*sin(2*pi*k/60)); y2:= y1 - round(r*Xasp*cos(2*pi*k/60)/Yasp); Line(x01,y01,x2,y2); end; SetWriteMode(XorPut); SetLineStyle(SolidLn,0,ThickWidth); r:=0; repeat for k := 0 to 59 do if not keypressed then begin x2:= x1 + round(0.85*r1*sin(2*pi*r/60/12)); y2:= y1 - round(0.85*r1*Xasp*cos(2*pi*r/60/12)/Yasp); x01:= x1 + round(r2*sin(2*pi*k/60)); y01:= y1 - round(r2*Xasp*cos(2*pi*k/60)/Yasp); Line(X1,y1,x2,y2); Line(x1,y1,x01,y01); Delay(100); Line(x1,y1,x01,y01); Line(X1,y1,x2,y2); inc(r); if r=12*60 then r:=0; end Until keypressed; if readkey=#0 then k := ord(readkey); CloseGraph; End.