解説:8−5−1

このプログラムも先ほどの解説のように、簡単にできる。

プログラム:

procedure TForm1.Button1Click(Sender: TObject);

var pai, th, incr, r1, r2, x, y : real;
   i, n_div, xc, yc, xi, yi : integer;

begin

   pai := 3.1415;
   r1 := 200;
   r2 := 100;
   n_div := 100;
   incr := 2*pai/n_div;
   xc := 300; yc := 200;

   while ( r1 >= 100 ) do begin

      th := 0;

      Canvas.MoveTo(xc+round(r1),yc);

      for i := 1 to n_div do begin

         th := th + incr;

         x := r1 * cos(th);
         y := r2 * sin(th);

         xi := round(xc + x);
         yi := round(yc - y);
         Canvas.LineTo(xi,yi);

      end;

      r1 := r1 - 20;

   end;
end;

end.

   結果: