Преобразования плоскости

Сдвиг, поворот и масштабирование плоскости — всё это простые операции над комплексными числами.

Линейное преобразование $w=az+b$ описывает композицию поворота, растяжения (через $a$) и сдвига (через $b$) плоскости.

Словарь преобразований

Комплексные операции напрямую соответствуют геометрии:

ОперацияГеометрия
$z+b$сдвиг (параллельный перенос) на вектор $b$
$z\cdot e^{i\alpha}$поворот на угол $\alpha$ вокруг начала
$z\cdot r$ (вещественное $r\gt0$)растяжение/сжатие в $r$ раз
$\bar{z}$отражение относительно вещественной оси

Комбинируя их, получаем общее преобразование подобия $w=az+b$, где $a=re^{i\alpha}$ задаёт поворот с масштабированием, а $b$ — последующий сдвиг.

Поворот вокруг произвольной точки

Поворот вокруг начала координат — это просто умножение на $e^{i\alpha}$. А как повернуть вокруг другой точки $c$? Сначала сдвигаем так, чтобы $c$ попала в начало ($z-c$), поворачиваем, потом возвращаем сдвиг:

$$w=(z-c)e^{i\alpha}+c.$$

Повернём точку $z=3+0i$ на $90^\circ$ вокруг точки $c=1+0i$:

import cmath, math
z = 3 + 0j
c = 1 + 0j
alpha = math.pi/2  # 90 градусов
w = (z - c) * cmath.exp(1j*alpha) + c
print("Результат:", complex(round(w.real,4), round(w.imag,4)))

Вывод:

Результат: (1+2j)

Точка $3$ при повороте на $90^\circ$ вокруг $1$ перешла в $1+2i$: расстояние до центра ($2$ единицы) сохранилось, направление повернулось вверх.

Композиция преобразований

Главное преимущество — преобразования композируются умножением. Два поворота $e^{i\alpha}$ и $e^{i\beta}$ дают поворот $e^{i(\alpha+\beta)}$. Поворот с масштабом и ещё один — просто перемножаются коэффициенты $a$. Где в матричной геометрии нужно перемножать матрицы $2\times2$, в комплексной — умножить два числа.

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

Преобразование $w=az+b$ с $a\ne0$ называется аффинным преобразованием подобия: оно сохраняет углы и отношения длин, меняя только размер, ориентацию и положение фигуры. Именно такими преобразованиями строят фракталы вроде «папоротника Барнсли» и работают системы 2D-графики. Комплексное число $a$ компактно хранит и угол поворота, и коэффициент масштаба.

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

  • Поворачивать вокруг произвольной точки простым умножением. Нужно сначала сдвинуть центр в начало координат.
  • Путать сдвиг (сложение) и масштабирование (умножение на вещественное).
  • Забывать, что умножение на комплексное $a$ с $|a|\ne1$ одновременно и поворачивает, и масштабирует.

Итог

  • Сдвиг — сложение, поворот и масштаб — умножение, отражение — сопряжение.
  • Поворот вокруг точки $c$: $w=(z-c)e^{i\alpha}+c$.
  • Преобразования подобия композируются умножением комплексных коэффициентов.
Проверьте себя
1. Какой геометрический смысл имеет операция $z+b$ над комплексными числами?
AПоворот
BСдвиг (параллельный перенос) на вектор $b$
CМасштабирование
DОтражение
2. Как повернуть точку $z$ на угол $\alpha$ вокруг точки $c$?
A$w=z e^{i\alpha}$
B$w=(z-c)e^{i\alpha}+c$
C$w=z e^{i\alpha}+c$
D$w=(z+c)e^{i\alpha}$