解説:9−4

このプログラムも、さっきまでの簡単にしたものを原点に関して対称移動させたものである。

プログラム:

procedure TForm1.Button1Click(Sender: TObject);

var pnt, pt : array [1..4,1..2] of integer;

   i, n, xc, yc : integer;

begin

   pnt[1,1] := 0; pnt[1,2] := 0;
   pnt[2,1] := 50; pnt[2,2] := 50;
   pnt[3,1] := 50; pnt[3,2] := 150;
   pnt[4,1] := 0; pnt[4,2] := 100;

   xc := 200;
   yc := 200;

   for n:=1 to 2 do begin

      if n=1 then begin

         for i := 1 to 4 do begin
           pt[i,1] := xc + pnt[i,1];
           pt[i,2] := yc - pnt[i,2];
         end;

      end else

         for i := 1 to 4 do begin
           pt[i,1] := xc - pnt[i,1];
           pt[i,2] := yc + pnt[i,2];
         end;

      Canvas.Polygon([ Point(pt[1,1],pt[1,2]),
                  Point(pt[2,1],pt[2,2]),
                  Point(pt[3,1],pt[3,2]),
                  Point(pt[4,1],pt[4,2]) ] );

   end;

end;

end.

結果: