Язык программирования:
Pascal
Среда программирования:
Lazarus 1.2.6
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { private declarations } x1, y1, r1, r2, c: Integer; public { public declarations } procedure Round (x, y, w, z: Integer); procedure Round2 (x, y, w, z: Integer); end; var Form1: TForm1; i,j, save1, save2: Integer; implementation {$R *.lfm} { TForm1 } procedure TForm1.Round (x, y, w, z: Integer); begin with PaintBox1.Canvas do begin //Красный // Pen.Style := psClear; Pen.Color := clRed; Brush.Color := clRed; Ellipse (x-15,y-15,w+15,z+15); Ellipse (x,y+15,w+30,z+45); end; end; procedure TForm1.Round2 (x, y, w, z: Integer); begin with PaintBox1.Canvas do begin //Чёрный // Pen.Style := psClear; Pen.Color := clBlack; Brush.Color := clBlack; Ellipse (x,y,w+30,z+30); Ellipse (x-15,y+30,w+15,z+60); end; end; procedure TForm1.Button1Click(Sender: TObject); begin // установка начальных значений x1:=0; y1:=0; c:=1; r1:=15; r2:=0; Timer1.Interval:=200; //фон PaintBox1.Canvas.Brush.Color := clWhite; PaintBox1.Canvas.Rectangle(0,0, 400, 400); // Включение таймера - запуск анимации Timer1.Enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin // Закраска объекта PaintBox1.Canvas.Brush.Color := clWhite; PaintBox1.Canvas.Rectangle(0,0, 400, 400); // Изменение радиуса кружков Case c of 1: begin r1:=r1-3; r2:=r2+3; if r1=0 then c:=2; end; 2: begin r1:=r1+3; r2:=r2-3; if r1=15 then c:=1; end; end; // Прорисовка кружков с новым радиусом save1:=x1; save2:=y1; x1:=x1-30; for i:=0 to 15 do begin x1:=x1+30; y1:=y1-60; for j:=0 to 10 do begin y1:=y1+60; Round(x1+r1,y1+r1,x1-r1,y1-r1); Round2(x1+r2,y1+r2,x1-r2,y1-r2); end; y1:=save2; end; x1:=save1; end; end.
Прикрепленный файл | Размер |
---|---|
Red and Black.rar | 2.51 кб |