This repository has been archived on 2024-12-25. You can view files and clone it, but cannot push or open issues or pull requests.
2023-06-20 21:52:24 +03:00

51 lines
977 B
ObjectPascal

// Класс штампа креста
uses GraphABC;
type
CrossStamp = class
x,y,w: integer;
constructor (xx,yy,ww: integer);
begin
x := xx; y := yy;
w := ww;
end;
procedure Stamp;
begin
MoveTo(x,y);
LineTo(x+w,y);
LineTo(x+w,y+w);
LineTo(x+2*w,y+w);
LineTo(x+2*w,y);
LineTo(x+3*w,y);
LineTo(x+3*w,y-w);
LineTo(x+2*w,y-w);
LineTo(x+2*w,y-2*w);
LineTo(x+w,y-2*w);
LineTo(x+w,y-w);
LineTo(x,y-w);
LineTo(x,y);
end;
procedure MoveOn(dx,dy: integer);
begin
x += dx; y += dy;
end;
procedure MoveOnRel(a,b: integer);
begin
MoveOn(a*w,b*w);
end;
function Clone := new CrossStamp(x,y,w);
end;
begin
var r := new CrossStamp(100,150,20);
for var k:=1 to 2 do
begin
var r1 := r.Clone;
for var i:=1 to 8 do
begin
r1.Stamp;
r1.MoveOnRel(2,1);
end;
r.MoveOnRel(-1,2);
end;
end.