Учитывая положение мяча, диаметр, направление/целевое положение и 4 края прямоугольника (соотношение 2:1), как я могу найти конечное положение (координаты точки) мяча, если он сталкивается с одним из стены? Есть ли какая-нибудь формула или более простой метод, чем мой? И как диаметр изменит результат (ударяется о стену в другом положении => оказывается в другом положении, но я не знаю, как его найти)?
Пример данного поля, мяча и цели
Вот решение, о котором я подумал ( диаметр = 0 ):
Редактировать: Извините, если это неправильное место для публикации (может быть, я должен был опубликовать это в https://physics.stackexchange.com/ ?)
Допустим, у нас есть точечный шар внутри прямоугольника (поля). Мяч будет перемещаться из своей начальной точки в какую-то другую точку (цель ), но если его путь пересекает сторону прямоугольника, то он отскакивает назад, и так продолжается до тех пор, пока общая длина его пути не станет такой же, как расстояние от начала до цели.
Предположим, что поле — это просто квадрат . Если отразить цель о левую или нижнюю стену, цель просто изменит знак своей или координировать. Если он отразится о правую или верхнюю стену, его координаты переключатся на или .
Отсюда простой алгоритм нахождения конечного положения шара: если координата или целевого значения отрицательно, замените его на или ; если координата или цели больше, чем , замените его на или ; остановить, когда обе координаты находятся в диапазоне .
Давайте сделаем пример. Если цель находится на у вас есть:
Если поле представляет собой обычный прямоугольник , то мы можем переназначить его на единичный квадрат следующим образом. Выберите одну из вершин в качестве источника (например, ) и взять в качестве координатных векторов
Пример. Если мы возьмем ситуацию, описанную на вашей картинке , мы имеем, например:
РЕДАКТИРОВАТЬ.
Если мяч имеет радиус , то мы можем восстановить описанный выше случай (где мы предполагали , т.е. точечный шар) путем сжатия исходного прямоугольника в другой прямоугольник , лежащий внутри и имеющие свои стороны на расстоянии со стороны . Нетрудно найти координаты вершин такого прямоугольника:
Как только новый прямоугольник получен, можно повторить описанный ранее алгоритм.
Давайте покажем, как это работает, на том же примере, что и раньше (ваша картинка), но с шаром радиуса . Используя значения, вычисленные выше, легко найти новые вершины:
Интеллигенти паука
Пользователь не найден
Интеллигенти паука
Интеллигенти паука
Пользователь не найден
Пользователь не найден