Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КГ лабы.doc
Скачиваний:
16
Добавлен:
10.05.2015
Размер:
455.68 Кб
Скачать

Геометрические преобразования на плоскости

Цель работы:Освоение математических и алгоритмических основ двумерной графики.

Задание:В варианте задания по данной лабораторной работе представлены вид плоской фигуры (многоугольник) и описание сложного геометрического преобразования как комбинации простых (поворот, растяжение или сжатие, отражение, перенос). Необходимо написать и отладить программу, которая выводит на экран заданную фигуру до и после преобразований.

Теоретическая справка.

АФФИННОЕ ПРЕОБРАЗОВАНИЕ - геометрическое преобразование плоскости или пространства, которое можно получить, комбинируя движения, зеркальные отражения и гомотетии в направлениях координатных осей.

Афинные преобразования находят широкое применение при решении задач компьютерной графики. Для этого геометрические объекты представляются в однородных координатах.

Однородным представлением n-мерного объекта является его представление в (n+1)-мерном пространстве, полученное добавлением еще одной координаты - скалярного множителя (или масштабного фактора). Таким образом точка на плоскости представляется тремя координатами (x,y,1).

Основной целью введения однородных координат в компьютерной графике является их удобство в применении: к геометрическим преобразованиям, для описания задач проективной геометрии и в связи с необходимостью описывать несобственные (бесконечно удаленные) точки пространства. При помощи троек однородных координат и матриц третьего порядка можно описать любое афинное преобразование плоскости.

Афинное преобразование является комбинацией линейных преобразований, сопровождаемых переносом изображений. Для афинных преобразований транспонированный последний столбец обобщенной матрицы 3х3 равен |0 0 1|.

Элементы произвольной матрицы афинного преобразования не несут в себе явно выраженного геометрического смысла. Поэтому чтобы реализовать то или иное отображение, т.е. найти элементы соответствующей матрицы по заданному описанию геометрического преобразования необходимо сложное преобразование разбить на ряд частных и для каждого из них найти соответствующую матрицу. Матрица общего преобразования определяется произведением матриц частных(элементарных) преобразований.

Матрица линейного преобразования общего вида для двумерных однородных координат выглядит следующим образом:

.

Учитывая влияние элементов матрицы на результат линейного преобразования, матрицу можно разбить на 4 подматрицы: , элементы которых выполняют следующие преобразования:

  • Элементы a, b, c, dверхней подматрицы 2х2 изменяют масштаб изображения, а также выполяют операции сдвига и вращения.

  • Элементы m, nподматрицы 1х2 используются для получения проекций.

  • Элементы p, qподматрицы 2х1 выполняют операцию смещения (переноса) изображения.

  • Элемент sподматрицы 1х1 осуществляет однородное изменение масштаба: если s<1, то происходит увеличение масштаба; если s>1, то происходит уменьшение масштаба.

Цепочка преобразований

Для выполнения более сложных преобразований необходимо определить цепочку основных (элементарных) преобразований, применяемых последовательно. В этом случае матрица сложного преобразования ищется в виде произведения матриц преобразований, составляющих цепочку.

Например, операция поворота изображения на угол "ф" в точке А=(m,n) выполняется в три этапа:

  • Перенос точки вращения в начало координат.

  • Вращение изображения вокруг начало координат на угол "ф".

  • Обратный перенос точки вращения в прежнее положение.

Матрица полного преобразования Т определяется произведением матриц вышеперечисленных элементарных (частных) преобразований и равна:

.

Заметим, поскольку операция умножения матриц не является коммутативной, в цепочке преобразований менять местами матрицы нельзя!

Порядок выполнения.

  1. Получить вариант задания.

  2. Определить вид матрицы сложного преобразования.

  3. Рассчитать тестовый пример.

  4. Написать и отладить программу, реализующую данное преобразование.

  5. Показать работу преподавателю.

  6. Оформить отчет и защитить работу.

Содержание отчета.

  1. Формулировка задания.

  2. Теоретическая часть.

  3. Текст программы.

  4. Тестовый пример.

  5. Выводы.

Контрольные вопросы.

  1. Что такое простые и сложные геометрические преобразования точки на плоскости?

  2. Привести формулы простых преобразований.

  3. Что такое однородные координаты точки?

  4. Пояснить суть матричного подхода для описания геометрических преобразований точки.

  5. Как реализовать геометрическое преобразование плоской фигуры, заданной с помощью вершин?

ЛАБОРАТОРНАЯ РАБОТА №3