Однородные координаты и матричное представление двумерных преобразований
Преобразования переноса, масштабирования и поворота в матричной форме имеют вид:

Перенос реализуется с помощью операции сложения, а масштабирование и поворот — операции умножения. Удобно было бы эти преобразования представить в единой форме. Рассмотрим, как это сделать.
Если мы выразим точки в однородных координатах, то все три преобразования можно реализовать с помощью операции умножения.
В однородных координатах точка
записывается как
, где
— масштабный множитель, не равный нулю.
При этом, если точка задана в однородных координатах
, то можно найти ее декартовые координаты:

Если же
, то операция деления не нужна:

Перенос
Уравнение переноса (1) запишется в виде матрицы преобразования:
, (10)
или
, (11)
где
.
Перемножив, получим:
.
Докажем, что если точку
перенести в
на расстояние
, а затем в точку
на расстояние
, то в результате получим перенос на расстояние
.
| (12) |
| (13) |
Доказательство:

Теперь подставим (12) в (13):
.
Матричное произведение
и
:

то есть перенос — функция аддитивная.
Масштабирование
Уравнение масштабирования (4) в матричной форме имеет вид:
(14)
Определяя
,
имеем
. (15)
Перемножив, получим:
.
Докажем, что масштабирование — функция мультипликативная, то есть если точку
промасштабировать в точку
с
, а потом — в точку
с
, то результат будет иметь вид:
.
Доказательство:
| (16) |
| (17) |

Подставляя (16) в (17):
.
Матричное произведение
и
:
.
Поворот
Уравнение поворота (3) можно представить в виде:
. (18)
Полагая
,
имеем:
. (19)
Перемножив, получим:
.
Докажем, что два последовательных поворота аддитивны. Если точку
повернуть на угол
в точку
, а точку
— в точку
при повороте на угол
, то общий поворот равен
.
Доказательство:

.
Найдем
:

Дата добавления: 2016-07-18; просмотров: 1863;











