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