Поворот на плоскости и матрица поворота

Самая частая операция в кинематике — повернуть вектор на угол. Запишем её матрицей.

Матрица поворота — ортогональная матрица, которая переводит координаты вектора при повороте системы координат на заданный угол, сохраняя длины и углы.

Поворот точки $(x, y)$ на угол $\theta$ против часовой стрелки даёт новую точку $(x', y')$:

$$ x' = x \cos\theta - y \sin\theta, \qquad y' = x \sin\theta + y \cos\theta $$

В матричной форме это умножение на матрицу поворота:

$$ R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\\\ \sin\theta & \cos\theta \end{bmatrix} $$

Свойства

  • Ортогональность: $R^{-1} = R^{T}$. Обратный поворот — это транспонирование, считать ничего не надо.
  • Определитель $\det R = 1$ — длины и площади сохраняются.
  • Композиция поворотов — произведение матриц: $R(\alpha) R(\beta) = R(\alpha + \beta)$.

Считаем поворот

Повернём вектор $(2, 0)$ на $90^\circ$. Ожидаем $(0, 2)$.

import math

def rotate(x, y, deg):
    a = math.radians(deg)
    xr = x * math.cos(a) - y * math.sin(a)
    yr = x * math.sin(a) + y * math.cos(a)
    return round(xr, 4), round(yr, 4)

print("поворот (2,0) на 90 град:", rotate(2, 0, 90))
print("поворот (1,0) на 45 град:", rotate(1, 0, 45))
print("два раза по 45 = 90:", rotate(*rotate(1, 0, 45), 45))

Вывод:

поворот (2,0) на 90 град: (0.0, 2.0)
поворот (1,0) на 45 град: (0.7071, 0.7071)
два раза по 45 = 90: (0.0, 1.0)

Как работает под капотом

Столбцы матрицы $R$ — это образы базисных векторов: первый столбец $(\cos\theta, \sin\theta)$ показывает, куда уехала ось $x$, второй — куда ось $y$. Поэтому умножение «матрица на вектор» — это разложение вектора по повёрнутым осям. Знак минуса у $\sin$ в верхней строке отвечает за направление «против часовой».

Частые ошибки

  • Перепутать знак $\sin$ — получится поворот в обратную сторону.
  • Использовать $R^{-1}$ через дорогое обращение матрицы вместо простого транспонирования.
  • Забыть, что порядок умножения матриц важен в 3D (в 2D повороты коммутируют, в 3D — нет).

Итог

  • Поворот на плоскости задаётся матрицей $2\times2$ из синусов и косинусов.
  • Матрица поворота ортогональна: обратный поворот — это транспонирование.
  • Композиция поворотов — произведение матриц; на плоскости углы складываются.
  • Столбцы матрицы — образы базисных осей после поворота.
Проверьте себя
1. Чему равна обратная матрица поворота R(θ)?
A−R(θ)
BТранспонированной R(θ)ᵀ
CНулевой матрице
DСамой R(θ)
2. Чему равен определитель матрицы поворота?
A0
B1
C−1
DЗависит от угла