Аффинное преобразование (АП) – вид геометрической трансформации, при которой сохраняется параллельность прямых и соотношение длин отрезков прямой. Углы и расстояния между точками не сохраняются.
АП евклидова пространства — взаимно однозначное точечное отображение плоскости или пространства на себя, при котором:
- прямые (плоскости) переходят в прямые (плоскости)
- пересекающиеся прямые(плоскости)в пересекающиеся
- параллельные — в параллельные.
Аффинное преобразование называется изометрическим, если оно сохраняет расстояния между точками.
Преобразование на плоскости точки (x, y) в точку (x′, y′) осуществляется по формулам:
Или то же самое в матричном виде:
Где: M11, M12, M21, M22, Dx, Dy – коэффициенты, определяющие специфику АП.
Для получения сложного преобразования необходимо последовательно перемножить матрицы всех преобразований, в него входящих. Результат зависит от порядка следования матриц.
Операции АП:
- Поворот
- Сдвиг
- Перенос
- Масштабирование
- Отражение
Поворот (Rotate)
| Матрица | Функции |
|---|---|
|
1 2 |
X = x*cos(alpha) - y*sin(alpha) Y = x*sin(alpha) + y*cos(alpha) |
Сдвиг (Shear)
| Матрица | Функции |
|---|---|
|
1 2 |
X = x + y*tan(beta) Y = x*tan(alpha) + y |
Перенос (Translate)
| Матрица | Функции |
|---|---|
|
1 2 |
X = x + Dx Y = y + Dy |
Масштабирование (Scaling)
| Матрица | Функции |
|---|---|
|
1 2 |
X = x * Sx Y = y * Sy |







Круто! Отличный материал и стиль изложения. Так держать!
Единственное, были бы не лишними примеры в коде, и это, надеюсь, материал для следующей статьи?
Уже опубликовал могучую статью в «Теории и Практике») Там и исходники, и расшифровка матриц, надеюсь, понравится.