program grafika;
uses crt,graph,bgitoexe;
var pic,pic2:pointer;
xx,yy,a,b,x,y,x0,y0,r,karta,tryb,d:integer;
BEGIN
dodajbgi;
r:=11;
d:=2*r;
detectgraph(karta,tryb);
initgraph(karta,tryb,' ');
settextstyle(0,0,1);
setfillstyle(1,15);
circle(100,100,r-1);
floodfill(100,100,15);
bar(200,100,205,6*r+100);
getmem(pic,imagesize(100-r,100-r,100+r,100+r));
getmem(pic2,imagesize(200,100,205,6*r+100));
getimage(100-r,100-r,100+r,100+r,pic^);
getimage(200,100,205,6*r+100,pic2^);
putimage(100-r,100-r,pic^,xorput);
putimage(200,100,pic2^,xorput);
b:=0;
yy:=0;
a:=7;
repeat
for xx:=0 to getmaxx-2*r do begin
if b<=yy then
if yy<>getmaxy-2*r then begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy+1;
end
else begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy-1;
end
else
if yy<>0 then begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy-1;
end
else begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-d,yy-r,pic2^,xorput);
b:=yy;
yy:=yy+1;
end;
end;
for xx:=getmaxx-2*r downto 0 do begin
if b<=yy then
if yy<>getmaxy-2*r then begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy+1;
end
else begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy-1;
end
else
if yy<>1 then begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy-1;
end
else begin
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
delay(a);
putimage(xx,yy,pic^,xorput);
putimage(0,yy-d,pic2^,xorput);
putimage(getmaxx-r,yy-d,pic2^,xorput);
b:=yy;
yy:=yy+1;
end;
end;
until keypressed;
closegraph;
end.