Исходник программы, показывающей пример создания симулятора катапульты типа чашка (без ремня). Он имитирует растягивающие или крутильные движущие силы с заданными пользователем параметрами.
Настоящие катапульты развивались с двумя типами движущей силы, натяжные были пружинными и обычно принимали вид гигантских арбалетов. В торсионных версиях использовалось несколько прядей веревки, намотанных вокруг оси балки таким образом, что при переводе балки в горизонтальное положение веревки скручивались, создавая движущую силу. В большинстве современных моделей, вероятно, будут использоваться пружины или резиновые ленты, и они будут натяжного типа. В симуляторе моделей тоже нет. Поскольку конец балки должен двигаться вверх, чтобы бросить снаряд, силы пружины могут быть приложены к той же стороне балки, что и снаряд, и тянуть вверх, или на противоположной стороне оси и тянуть вниз. В нашем тренажере предусмотрены пружины как «подтягивания», так и «опускания».
Программа может сохранять и загружать файлы с параметрами катапульты (*.cat). Загружаемые файлы включают в себя несколько образцов конструкций катапульт.
Блок с вычислениями Рунге-Кутта используется для расчета сил ускорения. Во время фазы стрельбы нам необходимо рассчитывать значение углового ускорения в каждый момент расчета. Ускорение является функцией движущей силы, угла приложения силы и расстояния до оси поворота, массы снаряда и расстояния до точки поворота, момента инерции снаряда и инерции. балки. Подробности смотри в исходном коде.
Для каждой возвращенной точки мы можем проверить состояние симуляции и решить, когда будет выпущен снаряд. Мы остановимся, когда луч попадет в точку остановки или когда скорость снаряда уменьшится (т.е. ускорение станет отрицательным).
На этапе свободного полета оцениваются дифференциальные уравнения для горизонтального и вертикального движения выпущенного снаряда, а также некоторый начальный угол и скорость. Эта начальная траектория плюс сила тяжести и коэффициент сопротивления воздуха влияют на пройденный путь. Моделирование прекращается, когда снаряд достигает уровня земли.
Каждая из возвращенных точек сохраняет некоторые данные о состоянии снаряда в массиве записей положения. По окончании моделирования сохраненные результаты используются для анимации последовательности стрельбы и отображения значений в каждом временном интервале.
Нажатие переключателя «Преобразование единиц» вызывает выход, который пересчитывает значения единиц, коэффициенты пересчета и названия единиц. Все значения преобразуются из полей ввода пользователя в большие метрические единицы внутренне, а результаты конвертируются обратно в выбранную систему единиц перед отображением пользователю.