Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комп_граф.doc
Скачиваний:
21
Добавлен:
07.05.2019
Размер:
729.09 Кб
Скачать

Министерство образования Российской Федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

____________________________________________________________________

А.И. ДРУЖИНИН, В.В. ВИХМАН

Алгоритмы компьютерной графики

Утверждено Редакционно-издательским советом университета в качестве учебного пособия

Новосибирск

2003

Рецензенты: канд. техн. наук, доцент В.А. Овчеренко,

канд. техн. наук, ст. преп. Е.Л. Веретельникова

Работа подготовлена на кафедре вычислительной техники для студентов II курса АВТФ специальностей 220100 и 220400

А.И. Дружинин, В.В. Вихман

Алгоритмы компьютерной графики: Учеб. пособие. – Новосибирск: Изд-во НГТУ, 2003. – 47 с.

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

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

Авторы работы выражают особую благодарность инженерам кафедры вычислительной техники Малявко О.В. и Исаеву А.Р. за оформление учебного пособия.

©

Новосибирский государственный технический университет, 2003 г.

1 . Генерация векторов

Ц ель: Изучить алгоритмы разложения отрезка в растр: алгоритм цифрового дифференциального анализатора (ЦДА), алгоритм Брезенхема. Сравнить результаты применения алгоритмов между собой

Назначение генератора векторов – соединение двух точек изображения отрезком прямой. Далее будут рассмотрены следующие алгоритмы:

  • алгоритм ЦДА – цифрового дифференциального анализатора (DDA – Digital Differential Analyser) для генерации векторов – симметричный и несимметричный;

  • алгоритм Брезенхема для генерации векторов.

Перед рассмотрением конкретных алгоритмов сформулируем общие требования к изображению отрезка:

  • концы отрезка должны находиться в заданных точках;

  • отрезки должны выглядеть прямыми;

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

  • построение должно быть быстрое.

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

  • концы отрезка в общем случае располагаются на пикселах, лишь наиболее близких к требуемым позициям и только в частных случаях координаты концов отрезка точно совпадают с координатами пикселов;

  • отрезок аппроксимируется набором пикселов и лишь в частных случаях вертикальных, горизонтальных и отрезков под 45° они будут выглядеть прямыми, причем гладкими прямыми, без ступенек только для вертикальных и горизонтальных отрезков (рис. 1.1);

  • яркость для различных отрезков и даже вдоль отрезка в общем случае различна, так как, например, расстояние между центрами пикселов для вертикального отрезка и отрезка под углом 45° различно (рис. 1.1).

Рис. 1.1. Растровое представление различных векторов