Этап 3. Свободное движение по инерции с повторяющимися упругими столкновениями
Столкновение одного тела с другим часто рассматривают как "удар", то есть явление настолько короткое, что его длительностью можно пренебречь. При этом для вычисления конечных скоростей и направлений движения тел после удара используют специальные методы расчёта. Пример материалов по теме:
Но поскольку мы уже создали модель упругого взаимодействия, а компьютер производит все вычисления крайне быстро, нам несложно будет самостоятельно решить задачу моделирования столкновения двух тел. Причём мы не будем упрощать картину и считать время взаимодействия тел равным нулю.
Модифицируем нашу компьютерную модель таким образом, чтобы появилась фаза свободного движения между столкновениями с правой и левой границей свободного пространства. Нам понадобятся переменные "правГраница" и "левГраница". Начальное положение мяча - посередине, мяч при старте программы имеет некоторую скорость.
Существующие коэффициенты "к0", "к1" и "к2" будем использовать для учёта возможного сопротивления движению во время свободной фазы. Давайте для начала условимся, что фаза свободного движения проходит без какого-либо трения и без сопротивления воздуха. Во время контакта мяча с левой или правой границей будем использовать "кПрав0", "кПрав1", "кПрав2", "кЛев0", "кЛев1" и "кЛев2". Кроме того, жёсткость левой и правой границы может быть разной, поэтому теперь у нас будет две переменной вместо одной: "жёсткостьПрав" и "жёсткостьЛев".
Создайте все новые переменные, они должны быть локальными. Теперь необходимо доработать набор скриптов спрайта "Мяч".
Отредактируйте определение блока "учесть сопротивление" так, чтобы использовалось три параметра.
Переименуйте блок "пересчитать скорость", дайте ему название "пересчитать скорость и учесть сопротивление". Доработайте скрипт.
Остальной набор скриптов:
Запустите программу. График движения мяча влево-вправо теперь выглядит как пила, и можно заметить, что отскоки от правой границы происходят резче, чем от левой.
Мы вплотную приблизились к решению более сложной задачи - моделированию отскока от движущегося объекта. И любопытно то, что скрипт, обеспечивающий перемещение мяча, для этого даже не придётся менять, он практически полностью готов! Но об этом поговорим в следующем материале.
___________________________________________________
На всякий случай, готовый файл проекта можно забрать из электронной библиотеки проекта. Файл с готовым проектом на данном этапе: этап3.sb3
Ранее в проекте:
1. Scratch3. Моделируем в Scratch гармонические колебания. Часть 1. Введение в проект.
2. Scratch3. Моделируем в Scratch гармонические колебания. Часть 2. Перемещение, скорость, ускорение.