Круг со второго РК (Документ Microsoft Word)

Посмотреть архив целиком

unit Unit1;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;


type

TForm1 = class(TForm)

Button1: TButton;

Timer1: TTimer;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

Form1: TForm1;


implementation


{$R *.dfm}

const

lx=30;

ly=30;

nx=10;

ny=10;

otstupx=250;

otstupy=50;

dx=5;

dy=5;

kx=1.04;

ky=1.04;


var

korx: array[1..4] of integer;

kory: array[1..4] of integer;

i: integer;

kxc,kyc,p,Elx1,Ely1,Elx2,Ely2: integer;

diag: real;


procedure perenos(var xx,yy: integer);

begin

xx:=xx+dx;

yy:=yy+dy;

end;


procedure povorot(var xx,yy: integer; xc,yc: integer);

var p: real;

begin

p:=xx;

xx:=round(xc+(p-xc)*cos(-pi/16)+(yy-yc)*sin(-pi/16));

yy:=round(yc-(p-xc)*sin(-pi/16)+(yy-yc)*cos(-pi/16));

end;


procedure mashtab(var xx,yy: integer; xc,yc: integer);

begin

xx:=round(xx*kx+(1-kx)*xc);

yy:=round(yy*ky+(1-ky)*yc);

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

canvas.Brush.Color:=clWhite;

canvas.Brush.Style:=bssolid;

canvas.Rectangle(0,0,clientwidth-otstupx,clientheight-otstupy);

timer1.Enabled:=false;

canvas.Pen.Color:=clBlack;

Elx1:=nx;

Ely1:=ny;

Elx2:=nx+lx;

Ely2:=ny+ly;

korx[1]:=nx;

kory[1]:=ny;

korx[2]:=nx+lx;

kory[2]:=ny;

korx[3]:=nx+lx;

kory[3]:=ny+ly;

korx[4]:=nx;

kory[4]:=ny+ly;

{!!!} canvas.Ellipse(Elx1-6,Ely1-6,Elx2+6,Ely2+6);

canvas.moveto(korx[1],kory[1]);

canvas.lineto(korx[3],kory[3]);

canvas.moveto(korx[2],kory[2]);

canvas.lineto(korx[4],kory[4]);

diag:=1.41*lx;

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

//стирание старого изображения

canvas.Pen.Color:=clWhite;

{!!!} canvas.Ellipse(Elx1-6,Ely1-6,Elx2+6,Ely2+6);

canvas.MoveTo(korx[1],kory[1]);

canvas.lineto(korx[3],kory[3]);

canvas.moveto(korx[2],kory[2]);

canvas.lineto(korx[4],kory[4]);

//перемещение

for i:=1 to 4 do perenos(korx[i],kory[i]);

perenos(Elx1,Ely1);

perenos(Elx2,Ely2);

//масштаб

kxc:=abs(korx[3]+korx[1]) div 2;

kyc:=abs(kory[3]+kory[1]) div 2;

for i:=1 to 4 do mashtab(korx[i],kory[i],kxc,kyc);

mashtab(Elx1,Ely1,kxc,kyc);

mashtab(Elx2,Ely2,kxc,kyc);

//поворот

for i:=1 to 4 do povorot(korx[i],kory[i],kxc,kyc);

//рисование на новом месте

canvas.Pen.Color:=clBlack;

{!!!} canvas.Ellipse(Elx1-6,Ely1-6,Elx2+6,Ely2+6);

canvas.MoveTo(korx[1],kory[1]);

canvas.lineto(korx[3],kory[3]);

canvas.moveto(korx[2],kory[2]);

canvas.lineto(korx[4],kory[4]);


diag:=diag*kx;

if diag>286 then timer1.Enabled:=false;

end;


procedure TForm1.Button2Click(Sender: TObject);

begin

timer1.Enabled:=true;

end;


procedure TForm1.Button3Click(Sender: TObject);

begin

timer1.Enabled:=false;

end;


end.


Случайные файлы

Файл
48235.rtf
112683.rtf
80131.doc
4585.rtf
14352-1.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.