Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 40032.doc
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
203.26 Кб
Скачать

ГОУВПО «Воронежский государственный технический

университет»

Кафедра компьютерных интеллектуальных технологий

проектирования

312-2009

Методические указания

к выполнению лабораторной работы № 8

по курсу «Компьютерная графика»

для студентов специальности 230104

«Системы автоматизированного проектирования»

очной формы обучения

Воронеж 2009

Составители: канд. техн. наук А.С. Кольцов,

д-р техн. наук Е.Д. Федорков,

ст. преп. В.А. Рыжков

УДК 681.3.06

Методические указания к выполнению лабораторной работы № 8 по курсу «Компьютерная графика» для студентов специальности 230104 «Системы автоматизированного проектирования» очной формы обучения / ГОУВПО «Воронежский государственный технический университет»; сост. Е.Д. Федорков, А.С. Кольцов, В.А. Рыжков. Воронеж, 2009. 25 с.

Приведены задания для лабораторных работ по курсу «Компьютерная графика», где описано исследование математических методов и алгоритмов преобразования двумерных координат в процессе построения сложных графических изображений, а также изучение алгоритмов построения динамических изображений со сложным преобразованием координат в графическом режиме.

Методические указания подготовлены на магнитном носителе в текстовом редакторе Microsoft Word 2003 и содержатся в файле KompGraf_5och.doc.

Предназначены для студентов 3 курса.

Библиогр.: 6 назв.

Рецензент д-р техн. наук, проф. О.Н. Чопоров

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. Е.Д. Федорков

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ГОУВПО «Воронежский

государственный технический

университет», 2009

Лабораторная работа №8 Преобразование двумерных координат. Динамическое Преобразование координат.

1. ЦЕЛЬ РАБОТЫ: исследование математических методов и алгоритмов преобразования двумерных и трехмерных координат в процессе построения сложных графических изображений, а так же изучение алгоритмов построения динамических изображений со сложным преобразованием координат в графическом режиме.

2. ЗАДАЧИ РАБОТЫ.

Освоить приемы работы с системой двумерных координат.

3. СОБЕРЖАНИЕ РАБОТЫ.

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

  • Написать и отладить на компьютере программу, реализующую требуемое преобразование изображения без масштабирования.

  • Если изображение искажено, ввести масштабирующие коэффициенты.

  • Результат работы программы продемонстрировать преподавателю.

  • Напечатать листинг программы.

4. ТРЕБОВАНИЯ К ОТЧЕТУ

Отчет выполняется на листах А4 формата и должен содержать:

  • название работы, постановку задачи, порядок выполнения работы и полученное изображение;

  • ответы на контрольные вопросы.

5. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

Преобразования координат широко используются при синтезе как статических, так и динамических изображений с целью реализации таких операций над рисунком как перенос, поворот, подобие, симметрия. Перенос является достаточно простой операцией, т.к. реализуется путем изменения значений одной и/или второй координат. Другие операции, а тем более их комбинация, характеризуются большей сложностью и требуют математических преобразований. Для простоты в данной лабораторной работе рассматриваются только двумерные преобразования. Обычно в данном процессе исходно задаются основные координаты x1, y1, а через них в виде уравнений просчитываются вторичные координаты x22, y22.

x22 = f(x1, y1),

y22 = f(x1, y1).

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

x22 = axxx1 + axyy1 + ax,

y22 = ayxx1 + ayyy1 + ay.

При этом сдвиг без поворота характеризуется матрицей коэффициентов

1

0

ax

0

1

ay

где ax, ay - задают сдвиг соответственно по осям x и y, т.е.

x2 = x1 + ax,

y2 = y1 + ay.

Операция масштабирования (преобразования подобия) реализуется матрицей

М

0

0

0

М

0

Зеркальное отображение относительно диагонали первого квадранта (смена координатных осей) предполагает матрицу вида

0

1

0

1

0

0

Повороту на угол α против часовой стрелки соответствует матрица

сosα

-sinα

0

sinαα

cosα

0

Комбинации двух или более операций преобразования соответствует комбинация коэффициентов соответствующих матриц. Так, например, сдвиг с одновременным поворотом реализуется матрицей

сosα

-sinα

ах

sinαα

cosα

аy

Описание среды программирования

При преобразовании координат в среде языка программирования Turbo Pascal необходимо учесть, что графический экран ПК представляет собой четвертый квадрант прямоугольной системы координат, т.е. начало координат находится в левом верхнем углу. Полноценная система координат создается самим пользователем путем переноса ее начала вниз и/или вправо на величины x и/или y, т.е. реализуется локальная система, сдвинутая на данные величины относительно глобальной. В дальнейшем, глобальные координаты всех точек (xг, yг) пересчитываются через локальные (xл, yл) по следующим уравнениям:

xг = xл + x,

yг = y - yл.

Вторая проблема, возникающая обычно при сложных преобразованиях, - разная разрешимость (количество пикселей на единицу длины) графического экрана по горизонтали и вертикали. Попытка изобразить квадрат путем задания одинакового количества пикселей по его сторонам приводит к отображению прямоугольника, вытянутого по высоте. Данный эффект отсутствует только при разрешении 640х480 и особенно усиливается при установке подрежимов с низким количеством пикселей по вертикали, например, 640х200 (см. лабораторную работу №3). Для устранения данного эффекта средствами языка Паскаль производится предварительное масштабирование изображения с помощью процедуры GetAspectRatio(mx, my), где mx, my - переменные, в которые записывается число точек по горизонтали и вертикали. В дальнейшем, при построении требуемого изображения все координаты по оси x должны умножаться на отношение my/mx или, наоборот, все координаты по оси y умножаются на отношение mx/my. При этом возникает еще одна проблема, связанная с особенностями языка Паскаль: получаемые при умножении масштабированные координаты могут принимать вещественные значения, что запрещено для параметров графических примитивов данного языка. Поэтому все результаты таких умножений должны округляться функцией Round.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]