Поворот на плоскости и матрица поворота
Самая частая операция в кинематике — повернуть вектор на угол. Запишем её матрицей.
Матрица поворота — ортогональная матрица, которая переводит координаты вектора при повороте системы координат на заданный угол, сохраняя длины и углы.
Поворот точки $(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$ из синусов и косинусов.
- Матрица поворота ортогональна: обратный поворот — это транспонирование.
- Композиция поворотов — произведение матриц; на плоскости углы складываются.
- Столбцы матрицы — образы базисных осей после поворота.