Документ Microsoft Word (Круг со второго РК)
Описание файла
Файл "Документ Microsoft Word" внутри архива находится в папке "Круг". Документ из архива "Круг со второго РК", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "контрольные работы и аттестации", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Документ Microsoft Word"
Текст из документа "Документ 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.