I am affraid that we will have to use math.
Поверните точку на отрицательное значение угла поворота, чтобы получить ее положение на повернутой плоскости, используя это уравнение:
nX = x * cos(a) - y * sin(a)
nY = x * sin(a) + y * cos(a)
где a
отрицательно от значения вращения
Ваша точка теперь находится на обычной не повернутой плоскости, поэтому остальная логика такая же, как когда angle = 0
Вот демонстрационная скрипка для вас:
http://jsfiddle.net/Q6dpP/5/
А вот и версия с переводом:
http://jsfiddle.net/Q6dpP/6/