§ Повороты

Сегодня тема не будет сложной. Я позаимствую картинку из предыдущей статьи про сложение углов синусов и косинусов, потому что это все равно нам понадобится

Задача такая: надо повернуть точку A на угол c , чтобы из угла a точка перешла к углу b , или, в декартовой системе координат, из точки A в точку B.
Снова вспомнив формулы из школы, мы рассмотрим перевод из полярной системы координат в декартову
A = (rcos\alpha, rsin\alpha)
B = (rcos\beta, rsin\beta)
Не нужно пугаться этих формул. Здесь r это длина от точки (0,0) к точке A или к точке B. Итак, вот дано у нас положение точки A, нужно повернуть на угол c и получить точку B. Как это сделать? Для начала, надо понять, что точка B получается путем сложения углов a и c :
B = (rcos(\alpha + c), rsin(\alpha + c))
Здесь надо применить те самые формулы сложения синусов и косинусов
x' = rcos(\alpha + c) = rcos(\alpha)cos(c) - rsin(\alpha)sin(c)
y' = rsin(\alpha + c) = rsin(\alpha)cos(c) + rcos(\alpha)sin(c)
Теперь, если внимательно приглядеться, можно обнаружить, что легко можно поменять rcos(\alpha) на x , а rsin(\alpha) на y :
x' = xcos(c) - ysin(c)
y' = ycos(c) + xsin(c)
Здесь
A=(x,y)
B=(x',y')
Всё! Эта мегаформула используется где только можно, где только нужно, так что все нормально, все будет хорошо. Можно поворачивать сколько угодно раз и по всем возможным осям без зазрения совести.