
30.05.2010, 19:31
|
Прохожий
|
|
Регистрация: 26.05.2010
Сообщения: 3
Репутация: 10
|
|
Нус-с-с домучали со знакомым програмку, теперь следующая проблема, может кто знает, как во время движения сделать масштабирование(уменьшение) с коэффициентом кх=ку=1
вот код:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Timer1: TTimer;
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var xc,yc,x1,x2,x3,y1,y2,y3,x4,y4,f,xc1,yc1:real; i,fi,dfi:integer;
const r=200;
procedure risunok;
begin
form1.canvas.moveto(100,260);
form1.canvas.lineto(60,300);
form1.canvas.lineto(100,340);
form1.canvas.lineto(140,300);
form1.canvas.lineto(100,260);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.canvas.rectangle(0,0,clientwidth,clientheight-100);
risunok;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
timer1.enabled:=true;
xc1:=350; fi:=0; dfi:= 1;
yc1:=200;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Canvas.Rectangle(0,0,clientwidth,clientheight-100);
fi:=fi+dfi;
xc:=xc1+round(50*cos(fi*pi/180));
yc:=yc1-round(50*sin(fi*pi/180));
x1:=xc;
x2:=xc-40;
x3:=xc;
x4:=xc+40;
y1:=yc-40;
y2:=yc;
y3:=yc+40;
y4:=yc;
form1.canvas.moveto(round(x1),round(y1));
form1.canvas.lineto(round(x2),round(y2));
form1.canvas.lineto(round(x3),round(y3));
form1.canvas.lineto(round(x4),round(y4));
form1.canvas.lineto(round(x1),round(y1));
end;
end.
|