
22.11.2012, 21:18
|
 |
Новичок
|
|
Регистрация: 05.03.2012
Сообщения: 82
Репутация: 10
|
|
так и не разобрался =(
вот код
Код:
procedure TForm1.onPaint(Sender: TObject);
Var x_left, x_right,y_up, y_down,n,i:integer;
tau,x,y: real;
begin
x_origin:=Form1.Width div 2;
y_origin:=Form1.Height div 2;
x_left:=round (Form1.Width/20);
x_right:=round (Form1.Width-Form1.Width/20);
y_up:=round (Form1.Height/20);
y_down :=round (Form1.Height-Form1.Height/20);
n:=10;
x_step:=round ((x_right-x_left)/n);
y_step:=round ((y_down - y_up)/n);
with Form1.Canvas do
Begin
MoveTo (x_left, y_origin);
LineTo (x_right, y_origin);
MoveTo (x_origin, y_up);
LineTo (x_origin, y_down);
for i:=1 to 1000 do
begin
tau:=i/50;
Form1.Canvas.Pixels[round(x_origin+(7*tau*tau+1)*x_step), round(y_origin+(5*tau)*y_step)]:=clBlue;
end;
end;
end;
procedure vector(x0,y0,abs_r:integer;gamma:real) ;
Var alpha:real;
yk, xk,x1,y1,x2,y2,delta:integer;
begin
with Form1.Canvas do
begin
xk:=round (x0+abs_r*cos(gamma));
yk:=round (y0-abs_r*sin(gamma));
MoveTo (x0,y0);
LineTo (xk,yk);
alpha:=Pi/6;
delta:=10;
x1:=round (xk-delta*(cos(alpha)*cos(gamma)+sin(alpha)*sin(gamma)));
y1:=round (yk+delta*(cos(alpha)*sin(gamma)-sin(alpha)*cos(gamma)));
x2:=round (xk-delta*(cos(alpha)*cos(gamma)-sin(alpha)*sin(gamma)));
y2:=round (yk+delta*(cos(alpha)*sin(gamma)+sin(alpha)*cos(gamma)));
MoveTo(xk,yk);
LineTo(x1,y1);
Moveto(xk,yk);
LineTo(x2,y2);
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
Var i,j,x0,yo:integer;
track: array [1..10000] of Tpoint;
begin
Label1.Caption:=floattostr(t);
t:=t+1/1000;
i:=round (1000*t);
track[i].x:=round((7*t*t+1)*x_step);
track[i].y:=round((-5*t)*y_step);
Form1.Canvas.Pixels[x_origin+track[i].x,y_origin-track[i].y]:=clGreen;
begin
Form1.Canvas.Pen.Color:=clbtnFace;
Vector(x_origin+track[i-1].x,y_origin-track[i-1].y,abs(round(v_y)),Pi/2);
Form1.Canvas.Pen.Color:=clBlack;
Vector(x_origin+track[i].x,y_origin-track[i].y,abs(round(v_y)),Pi/2);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
t:=0;
Form1.Timer1.Enabled:=true;
end;
end.
если укажите в чем ошибка буду очень благодарен
вопрос тот же
|