解説:9−3

このプログラムはこの前のx軸に関しての解説のプログラムをY軸に関してのプログラムに書き換えたものである。

procedure TForm1.Button1Click(Sender: TObject);

var pnt, pt : array [1..6,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] := 150;  pnt[3,2] :=  -50;
   pnt[4,1] := 100;  pnt[4,2] :=    0;
   pnt[5,1] := 150;  pnt[5,2] :=   50;
   pnt[6,1] :=  50;  pnt[6,2] :=   50;

   xc := 200;
   yc := 200;

   for n:=1 to 2 do begin

      if n=1 then begin

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

      end else

         for i := 1 to 6 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]),
                  Point(pt[5,1],pt[5,2]),
                  Point(pt[6,1],pt[6,2]) ] );

   end;

end;

end.

変わったところは赤文字で書いてある記号だけである。
ここで右側の絵は、n=1で描かれている元の座標の絵であり、左側の絵がn=2で描かれている対象移動した絵である。

結果: