Компьютерная модель движения тела под действием силы тяжести
--------------------------------
Литература по теме:
1. 3D графика в PascalABC.NET - возможности модуля Graph3D
http://pascalabc.net/downloads/Presen...
2. Майер Р.В. Компьютерное моделирование. Глава 2. НЕПРЕРЫВНО-ДЕТЕРМИНИРОВАННЫЕ МОДЕЛИ ДИНАМИЧЕСКИХ СИСТЕМ С КОНЕЧНЫМ ЧИСЛОМ СТЕПЕНЕЙ СВОБОДЫ
http://maier-rv.glazov.net/KM/Mayer_K...
---------------------------------
Теория по теме:
Численное интегрирование методом Эйлера
• Численное интегрирование методом Эйлера
---------------------------------
Листинг программы:
---------------------------------
? - заменяет символы "больше" и "меньше" соответственно (ограничение YouTube на символы в комментариях видео)
---------------------------------
uses graph3D;
const rad = 1;
dt = 0.001;
var x,y,z : real; // Координаты
vx,vy,vz: real; // Проекции скорости
ax,ay,az: real; // Проекции ускорения
begin
// Начальные координаты
x:=0;
y:=0;
z:=10;
// Начальные скорости
vx:=10;
var s:=Sphere(x,y,z,rad,ARGB(255,255,255,255));
var rect1:=Rectangle3D(0,0,0,20,10,V3D(0,0,1),V3D(1,0,0),ARGB(255,0,100,0));
var rect2:=Rectangle3D(10,0,5,10,10,V3D(-1,0,0),V3D(0,0,1),ARGB(50,0,0,200));
var rect3:=Rectangle3D(-10,0,5,10,10,V3D(1,0,0),V3D(0,0,1),ARGB(50,0,0,200));
repeat
// Проекции ускорения
ax:=0;
ay:=0;
az:=-9.8;
// Проекции скорости
vx:=vx+ax*dt;
vy:=vy+ay*dt;
vz:=vz+az*dt;
// Координаты
x:=x+vx*dt;
y:=y+vy*dt;
z:=z+vz*dt;
// Перемещаем объект
s.MoveOnX(vx*dt);
s.MoveOnY(vy*dt);
s.MoveOnZ(vz*dt);
sleep(1);
if z?=rad then vz:=-vz;
if (x?=(10-rad))or(x?=(-10+rad)) then vx:=-vx;
until z?20;
end.
------------------------------
? - заменяет символы "больше" и "меньше" соответственно (ограничение YouTube на символы в комментариях видео)
#Graph3D #PascalABC #компьютерноемоделирование #методЭйлера