Другие языки программирования и технологии

Нарисовать в делфи траекторию движения тела, брошенного под углом к горизонту. что писать в программе?

Поместить на форму объект Image
Свойство Align установить в alClient
Поместить на форму 3 объекта TrackBar
выставить для 1: Max = 90 Min = 0 Position = 45 Fraquancy = 5 - это будет угол
выставить для 2: Max = 40 Min = 0 Position = 20 Fraquancy = 2 - это будет скорость
выставить для 3: Max = 10 Min = 1 Position = 5 Fraquancy = 1 - это будет сила притяжения
Поместить на форму кнопку
На событие нажатия на кнопку написать:
procedure TForm1.Button1Click(Sender: TObject);
var
X0, Y0 : Integer;
X, Y : Real;
V0, A, Vx, Vy, t, g : Real;
begin
Image1.Canvas.FillRect(Image1.ClientRect);
X0 := 10;
Y0 := Image1.Height - 10;
Image1.Canvas.MoveTo(10, Y0);
Image1.Canvas.Pen.Color := $000000;
Image1.Canvas.LineTo(Image1.Width - 10, Y0);
X := X0;
Y := Y0;
A := TrackBar1.Position;
V0 := TrackBar2.Position;
g := TrackBar3.Position;
Vx := Abs(V0 * cos(Pi * (90 - A) / 180));
Vy := V0 * sin(Pi * (90 - A) / 180);
t := 0;
Image1.Canvas.MoveTo(X0, Y0);
Image1.Canvas.Pen.Color := $FF0000;
while (X > 0) and (X < Image1.Width) and (Y > 0) and (Y < Image1.Height) do
begin
t := t + 0.1;
X := X0 + Vx * t;
Y := Y0 - (Vy * t - g*t*t / 2);
Image1.Canvas.LineTo(Round(X), Round(Y));
end;
end;
Изменяя положение ползунков - видим разные траектории!
Александр Дадон
Александр Дадон
84 244
Лучший ответ
Код. У меня где-то есть похожее на C#, только там траектория ракеты относительно Земли
В3
Валера 36
22 045

Похожие вопросы