Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ(Лек)МФ+ФГГиНД(2).docx
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
617.66 Кб
Скачать

8.3. Однородные координаты на плоскости

Перенос реализуется с помощью операции сложения матриц, а масштабирование и поворот – с помощью операции умножения. Это вызывает неудобство при осуществлении нескольких преобразований над объектом.

Пример.Если объект имеет N точек и необходимо провести 3 последовательных преобразования, то понадобится действий. Если бы можно было найти результирующую матрицу с помощью 2-х операций умножения матриц, то количество действий стало бы.

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

где . Если, тои, откуда.

Основные преобразования точки в точкув однородных координатах выражаются следующим образом.

  1. Перенос.

Уравнение переноса запишется в матричном виде следующим образом:

или,

где – матрица переноса в однородных координатах на плоскости.

Пример.Дан отрезок с начальной точкой и конечной точкой. Перенести отрезок на 3 единицы вправо и 2 единицы вниз.

По условию задачи ,. Получим результирующие точки в матричном виде в однородных координатах:

; .

Таким образом, координаты отрезка после переноса будут и.

  1. Масштабирование.

Уравнение масштабирования в матричной форме имеет вид:

или,

где – матрица масштабирования в однородных координатах на плоскости.

Пример.Дан отрезок с начальной точкой и конечной точкой. Растянуть отрезок в 3 раза по осиx и сжать в 2 раза по оси y.

По условию задачи ,. Итоговые координаты для 1-й точки останутся прежними. Найдём итоговые координаты для 2-й точки в матричном виде в однородных координатах:

.

Таким образом, координаты отрезка после масштабирования будут и.

  1. Поворот.

Уравнение поворота можно представить в виде:

или,

где – матрица поворота в однородных координатах на плоскости.

Пример.Дан отрезок с начальной точкой и конечной точкой. Повернуть отрезок на 90 против часовой стрелки.

По условию задачи ,,. Итоговые координаты для 1-й точки останутся прежними. Найдём итоговые координаты для 2-й точки в матричном виде в однородных координатах:

.

Таким образом, координаты отрезка после поворота будут и.

8.4. Композиции двумерных преобразований

Обычно при работе с графической компьютерной системой объект подвергается сразу нескольким преобразованиям. Более эффективно применять к точкам одно результирующее преобразование, чем ряд последовательных преобразований.

Пример.Повернуть произвольный объект на угол вокруг некоторой точки .

Ранее был рассмотрен поворот относительно начала координат. Для поворота относительно произвольной точки разобьём задачу на 3 этапа:

  1. Перенос точки на по осиx и на по осиy, чему соответствует матрица , т.е.

.

  1. Поворот точки на угол относительно начала координат, чему соответствует матрица , т.е.

.

  1. Перенос точки на x0 по оси x и на y0 по оси y, чему соответствует матрица , т.е.

.

Результирующее преобразование имеет матрицу:

.

В координатном виде данное преобразование можно записать так: