Для удобства окружность в нулях, радиус - r
Перемещение точки:
x = x + cos(arc) * speed
y = y + sin(arc) * speed
если x^2 + y^2 > r^2, мы столкнулись с окружностью,
перпендикуляр к окружности = atan(y, x)
угол падения = перпендикуляр к окружности - arc
угол отражения = перпендикуляр к окружности - 180 + угол падения
arc = угол отражения
|
примерно так, конечно операции с углами должны правильно обрабатывать отрицательные углы, и углы превышающие 360 градусов