Однородные координаты и матричное представление двумерных преобразований
Преобразования переноса, масштабирования и поворота в матричной форме имеют вид:
Перенос реализуется с помощью операции сложения, а масштабирование и поворот — операции умножения. Удобно было бы эти преобразования представить в единой форме. Рассмотрим, как это сделать.
Если мы выразим точки в однородных координатах, то все три преобразования можно реализовать с помощью операции умножения.
В однородных координатах точка записывается как
, где
— масштабный множитель, не равный нулю.
При этом, если точка задана в однородных координатах , то можно найти ее декартовые координаты:
Если же , то операция деления не нужна:
Перенос
Уравнение переноса (1) запишется в виде матрицы преобразования:
, (10)
или
, (11)
где
.
Перемножив, получим:
.
Докажем, что если точку перенести в
на расстояние
, а затем в точку
на расстояние
, то в результате получим перенос на расстояние
.
(12) |
(13) |
Доказательство:
Теперь подставим (12) в (13):
.
Матричное произведение и
:
то есть перенос — функция аддитивная.
Масштабирование
Уравнение масштабирования (4) в матричной форме имеет вид:
(14)
Определяя
,
имеем
. (15)
Перемножив, получим:
.
Докажем, что масштабирование — функция мультипликативная, то есть если точку промасштабировать в точку
с
, а потом — в точку
с
, то результат будет иметь вид:
.
Доказательство:
(16) |
(17) |
Подставляя (16) в (17):
.
Матричное произведение и
:
.
Поворот
Уравнение поворота (3) можно представить в виде:
. (18)
Полагая
,
имеем:
. (19)
Перемножив, получим:
.
Докажем, что два последовательных поворота аддитивны. Если точку повернуть на угол
в точку
, а точку
— в точку
при повороте на угол
, то общий поворот равен
.
Доказательство:
.
Найдем :
Дата добавления: 2016-07-18; просмотров: 1743;