Предпроектные исследования предметной области. Математическая модель
Постановка задачи
Разработать программную модель мяча, подпрыгивающего на рельефной поверхности под действием сил гравитации.
Цель работы
Изучить технологию разработки ПО при структурном подходе. Применить полученные знания на практике, разработав программу.
Проектирование ПО при структурном подходе
В данном разделе представлены проектные решения по разработанной при структурном подходе системе.
Предпроектные исследования предметной области. Математическая модель
Сила тяжести(тяготения) - гравитационная сила притяжения, существующая на поверхности любой планеты или другого небесного тела. На Земле она действует на каждое свободно движущееся тело с ускорением, равным 9,8 .
На рисунке 3.1 представлена траектория движения тела под действием силы тяжести.
Рисунок 3.1 – Движение тела под действием силы тяжести.
Координаты материальной точки (x, y) в момент времени t, можно определить следующим образом:
(3.1)
где - значение скорости материальной точки в момент времени t0;
α – угол между горизонтом и вектором ;
g – ускорение свободного падения = 9.8 .
Значения координат вектора скорости в момент времени t выражаются следующим образом:
(3.2)
Движение мяча, подпрыгивающего на рельефной поверхности можно представить в виде множества отдельных движений, каждое из которых легко описывается формулами 3.1 и 3.2.
В случае абсолютно упругого удара кинетическая энергия тела остается неизменной, т.е. скорость мяча до столкновения равна скорости мяча после столкновения.
Рассмотрим математическую модель мяча, представленного кругом, отскакивающего от некоторой точки пространства. На рисунке 3.2 штриховой линией показана траектория движения центра круга, при движении по параболе и отскоке после столкновения с некоторой точкой.
Рисунок 3.2 – Нахождение угла отскока в локальной системе координат
Для определения угла падения α1 необходимо вычислить координаты вектора . Затем необходимо вычислить координаты вектора перпендикулярного вектору , и исходящего из центра круга. После этого необходимо определить угол от вектора к вектору по следующей формуле:
(3.3)
Зная значение угла падения α1 можно рассчитать угол отскока α2 по следующей формуле:
(3.4)
Найденное значение угла отскока α2 в общем случае не может подставляться в формулы 3.1 и 3.2 для решения поставленной задачи, т.к. система координат, в которой было найдено значение угла отскока, является локальной, т.е. она может быть произвольно ориентирована относительно декартовой системы координат. Представление движения мяча в виде множества движений по параболе возможно только при использовании общей для всех движений системы координат. На рисунке 3.3 приведен возможный вариант расположения локальной системы координат относительно декартовой системы координат.
Рисунок 3.3 – Нахождение угла между осью абсцисс и локальной системой координат
Угол β равен углу от орта к вектору , найти который можно по формуле 3.3. Угол α, с учетом ориентации локальной системы координат относительно декартовой системы координат, можно найти по следующей формуле:
(3.5)
Также для решения поставленной задачи необходимо определить способ нахождения расстояния от поверхности. Расстояние от поверхности до центра мяча равно минимальному из расстояний от точек поверхности до центра мяча. Расстояние от i-точки поверхности можно вычислить следующим образом:
(3.6)
Если Min(Si) меньше или равно радиусу мяча, то произошло столкновение и необходимо начать новое движение по параболе.