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