Моделирование полета тела в pascal

20 апреля 2020 - Администратор

Программа на pascal для моделирование полета тела брошенного под углом

  В этой статье мы разберем программу на pascal, которая моделирует и отображает анимацию полета  тела брошенного под углом к горизонту.
В процедуру для отображения полета тела мы будем передавать два параметра угол к горизонту и модуль скорости полета.
Переведем угол в градусах в радианы 
alpha:=(alpha*3.14)/180;
Чтобы рассчитать начальные проекции скоростей на оси  используем формулы
vx:=round(v*cos(alpha));
vy:=round(v*sin(alpha));

Полет будет осуществляться до тех пор пока координата y будет положительна, чтобы моделировать полет в цикле while (подробно о циклах while в pascal )изменяется время, проекции скоростей и координаты
while (y>0) do
begin
t:=t+dt;
vy:=vy-(a*t);
x:=x+(vx*dt);
y:=y+(vy*dt);
xi:= round(x);
yi:=500 - round(y);
drawcircle(xi,yi,r);
sleep(30);
end;

В основной программе нарисуем мишень и будем вызвать процедуру моделирования полета с различными параметрами, чтобы попасть в мишень. Выбираем так параметры, чтобы был перелет, недолет и значение посередине.
Полная программа на pascal для моделирования полета тела брошенного под углом к горизонту
uses GraphABC;
var yi,xi,r: integer; a,t,dt,x,y,vx,vy:real;
procedure shot(v,alpha:real);
begin
alpha:=(alpha*3.14)/180;
vx:=round(v*cos(alpha));
vy:=round(v*sin(alpha));
r:=4;
t:=0;
dt:=0.1;
a:=1;
x:=50;
y:=1;
setWindowSize(600, 600);
while (y>0) do
begin
t:=t+dt;
vy:=vy-(a*t);
x:=x+(vx*dt);
y:=y+(vy*dt);
xi:= round(x);
yi:=500 - round(y);
drawcircle(xi,yi,r);
sleep(30);
end;
end;
begin
rectangle(216,264,236,269);
shot(120,57);
shot(150,57);
shot(60,57);
end.

программа для полета под углом к горизонту в паскаль
Полезно почитать по теме анимация в паскаль
Анимация в Паскаль

Поделиться 

 
 
Комментарии (0)

Нет комментариев. Ваш будет первым!