- •1. Введение 3
- •Область применения
- •История развитияКг
- •Концептуальная модель интерактивно-графической системы
- •Вывод информации
- •Графопостроители
- •Электрографические, лазерные и струйные устройства
- •Электрографические, ферромагнитные, лазерные устройства
- •Принцип работы лазерного принтера
- •Струйные устройтва
- •Принцип работы струйных принтеров
- •Векторные и растровые дисплеи на электронно-лучевых трубках (элт)
- •Монохромная электронно- лучевая трубка
- •Отклоняющие системы
- •Люминофор
- •Цветные элт
- •Элт с теневой маской
- •Альтернативные способы вывода информации
- •Устройства ввода информации
- •Канал вывода информации
- •Прикладная структура данных
- •Прикладной графический пакет
- •Графическая система
- •Канал ввода информации
- •Растровая развертка примитивов
- •Растровая развертка прямых линий
- •Растровая развертка окружностей
- •Растровая развертка и заполнение полигональных областей
- •Области и алгоритмы по их заполнению
- •Алгоритм построчного сканирования
- •Простой рекурсивный алгоритм ( затравочное заполнение )
- •Алгоритм заполнения многоугольников
- •Простой алгоритм с упорядоченным списком ребер
- •Алгоритм заполнения по ребрам
- •Алгоритм со списком ребер и флагом
- •Работа с двухмерными объектами
- •Закраска изображения
- •Управление двухмерными объектами
- •Отсечение многоугольников
- •Последовательное отсечение многоугольника: алгоритм Сазерленда-Ходжмена
- •Последовательное отсечение многоугольника:алгоритм Вейлера - Азертона
- •Отсечение Вейлера- Азертона
Канал ввода информации
Ввод информации в ИГС предполагает следующие этапы работы ИГС:
построение объекта моделирования;
управление объектом;
изменение параметров объекта.
Из рисунка видно, что пользователь в диалоговом режиме имеет возможность воздействовать на прикладную структуру данных и ПГП.
Воздействие на прикладную структуру данных предполагает изменение описания самого объекта: геометрические размеры, взаиморасположение отдельных деталей, цветовые свойства материалов.
Воздействие на ПГП аналогично рассмотрению объекта с помощью видеокамеры: изменение ракурса просмотра («облет»), изменение расстояния до объекта (трансфокация), изменение освещенности источника.
Растровая развертка примитивов
Выше было показано, что графическая модель объекта описывается в терминах, наиболее удобных для векторных устройств вывода графической информации. Однако тенденция резкого снижения стоимости и компактности памяти регенерации позволили перейти к более прогрессивной технологии систем с растровой разверткой. Тем не менее от векторного описания объекта уйти невозможно по причине объема хранимой информации (если хранить описание в виде кадров ПР- требуются огромные объемы) и реализации видовых операций. Большая часть алгоритмов как двухмерной так и трехмерной МГ, рассматриваемых далее, ориентирована на растровую развертку изображения( сентенции по векторной графике), поэтому прежде чем приводить их описание рассмотрим методы растровой развертки.
Изображение в растровой графике представляет собой совокупность пикселов, расположенных в строго заданных координатах видовой плоскости. Для получения растрового изображения объекта необходимо «засветить» пикселы наиболее близко прилежащие к отображаемому примитиву. Процесс определения пикселов, наиболее точно аппроксимирующих примитив называется разложением в растр или преобразование в растровую форму.
Основной смысл разработки алгоритмов растровой МГ заключается в следующем. В системе МК координаты объекта с точки зрения программирования представлены в виде действительных чисел. Известно, что по времени операции в ЭВМ с действительными числами (Real) на порядок выше чем операции с целыми числами (Integer). Кроме этого, операции с целыми числами легко поддаются схемо-технической реализации, что еще на порядок увеличивает скорость обработки информации. Примером тому является разработка видеоускорителей, реализующих эти алгоритмы.
УСКОРИТЕЛИ !!!!!!
Растровая развертка прямых линий
Начнем рассмотрение вопросов растровой развертки с построения прямой линии (см . рисунок ).

Рис. 6-1 Разложение в растр отрезка прямой линии
Из рисунка видно, что решение задачи сводится к вычислению координат близлежащих пикселов. Данная задача достаточно просто решается, если воспользоваться известной формулой:
|
у = mх+b |
(3) |
На основе формулы (3) реализуется простой пошаговый алгоритм:
xi= xн ;
yi= yн ;
xi+1= xi +1x;
yi+1= m xi +1+ b.
Алгоритм значительно упрощается, если учесть что при x=1 (шаг дискретизации) m=y = уi+1-yi (т.е. y равен тангенсу угла наклона прямой линии).
Реализация данного алгоритма может быть осуществлена в виде цифрового дифференциального анализатора [ ]. Основным недостатком этого метода является необходимость обработки чисел с плавающей запятой (y и m – вещественные числа).
Алгоритм, предложенный Брезенхемом, оперирует только целыми числами.
Рассмотрим следующий рисунок:

Рис. 6-2
Предполагается, что пиксел Pi-1 уже определен. Задача заключается в установлении одного из пикселов Ti или Si.
Для определения нужного пиксела на каждом шаге вычисляется управляющая переменная di, пропорциональная разности между t и s. Если s<t, выбирается пиксел S, в противном случае T.
Опуская теоретические выкладки, с которыми можно познакомиться в [ ], приведем конечный результат:
Начальные значения
x1 = xн;
y1 = yн;
dx = |xк – xн|;
dy = |yк – yн|;
d1= 2dy – dx;
Вычисление
Вычисление управляющей переменной для шага i + 1: x = x+1;
если di 0, выбирается пиксел Ti, тогда yi = yi-1 +1 и di+1 = di + 2(dy-dx);
если di < 0, выбирается пиксел Si, тогда yi = yi-1 и di+1 = di + 2dy.
Данный алгоритм представлен для расчета в 1-м квадранте (тангенс угла наклона находится в диапазоне 0-1). Его практическая реализация и доработка предлагается читателю в качестве упражнения. Как видно, все переменные являются целочисленными. Единственная операция умножения на 2 может быть реализована как сдвиг влево. Таким образом, данный алгоритм может быть легко реализован в виде логической схемы.
