Модель движения мяча в комнате

Компьютерная модель движения тела под действием силы тяжести -------------------------------- Литература по теме: 1. 3D графика в PascalABC.NET - возможности модуля Graph3D http://pascalabc.net/downloads/Presentations/Tutorials/Graph3D.pdf 2. Майер Р.В. Компьютерное моделирование. Глава 2. НЕПРЕРЫВНО-ДЕТЕРМИНИРОВАННЫЕ МОДЕЛИ ДИНАМИЧЕСКИХ СИСТЕМ С КОНЕЧНЫМ ЧИСЛОМ СТЕПЕНЕЙ СВОБОДЫ http://maier-rv.glazov.net/KM/Mayer_Komp_mod2.pdf --------------------------------- Теория по теме: Численное интегрирование методом Эйлера https://youtu.be/ZZ4_GyeB6PM --------------------------------- Листинг программы: --------------------------------- ? - заменяет символы "больше" и "меньше" соответственно (ограничение 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 #компьютерноемоделирование #методЭйлера

12+
2 дня назад
12+
2 дня назад

Компьютерная модель движения тела под действием силы тяжести -------------------------------- Литература по теме: 1. 3D графика в PascalABC.NET - возможности модуля Graph3D http://pascalabc.net/downloads/Presentations/Tutorials/Graph3D.pdf 2. Майер Р.В. Компьютерное моделирование. Глава 2. НЕПРЕРЫВНО-ДЕТЕРМИНИРОВАННЫЕ МОДЕЛИ ДИНАМИЧЕСКИХ СИСТЕМ С КОНЕЧНЫМ ЧИСЛОМ СТЕПЕНЕЙ СВОБОДЫ http://maier-rv.glazov.net/KM/Mayer_Komp_mod2.pdf --------------------------------- Теория по теме: Численное интегрирование методом Эйлера https://youtu.be/ZZ4_GyeB6PM --------------------------------- Листинг программы: --------------------------------- ? - заменяет символы "больше" и "меньше" соответственно (ограничение 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 #компьютерноемоделирование #методЭйлера

, чтобы оставлять комментарии