Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
287
Добавлен:
04.03.2014
Размер:
1.96 Кб
Скачать
Program Timer;
uses graph,crt;
var
d,r,r1,r2,rr,k,x1,x2,y1,y2,x01,y01,e:integer;
Xasp,Yasp:word;
begin
clrscr;
d:=detect;
InitGraph(d,r,'');
k:=GraphResult;
If k<>grok then writeln(GraphErrorMSG(k)) else
begin
x1:=GetMaxX div 2;
y1:=GetMaxY div 2;
GetAspectRatio(Xasp,Yasp);
r:=round(2*GetMaxY*Yasp/8/Xasp);
r1:=round(0.7*r);
r2:=round(0.75*r);
Circle(x1,y1,r);
Circle(x1,y1,round(1.02*r));
Circle(x1,y1,5);
Circle(x1,y1,200);
Line(0,100,160,100);
setbkcolor(red);
For k:=0 to 59 do
begin
If k mod 5=0 then rr:=r1+15 else rr:=r2+15;
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(1000);
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;
end.