- •1. Введение 3
- •Область применения
- •История развитияКг
- •Концептуальная модель интерактивно-графической системы
- •Вывод информации
- •Графопостроители
- •Электрографические, лазерные и струйные устройства
- •Электрографические, ферромагнитные, лазерные устройства
- •Принцип работы лазерного принтера
- •Струйные устройтва
- •Принцип работы струйных принтеров
- •Векторные и растровые дисплеи на электронно-лучевых трубках (элт)
- •Монохромная электронно- лучевая трубка
- •Отклоняющие системы
- •Люминофор
- •Цветные элт
- •Элт с теневой маской
- •Альтернативные способы вывода информации
- •Устройства ввода информации
- •Канал вывода информации
- •Прикладная структура данных
- •Прикладной графический пакет
- •Графическая система
- •Канал ввода информации
- •Растровая развертка примитивов
- •Растровая развертка прямых линий
- •Растровая развертка окружностей
- •Растровая развертка и заполнение полигональных областей
- •Области и алгоритмы по их заполнению
- •Алгоритм построчного сканирования
- •Простой рекурсивный алгоритм ( затравочное заполнение )
- •Алгоритм заполнения многоугольников
- •Простой алгоритм с упорядоченным списком ребер
- •Алгоритм заполнения по ребрам
- •Алгоритм со списком ребер и флагом
- •Работа с двухмерными объектами
- •Закраска изображения
- •Управление двухмерными объектами
- •Отсечение многоугольников
- •Последовательное отсечение многоугольника: алгоритм Сазерленда-Ходжмена
- •Последовательное отсечение многоугольника:алгоритм Вейлера - Азертона
- •Отсечение Вейлера- Азертона
Растровая развертка окружностей
Принцип работы алгоритма растровой развертки окружности (дуги), разработанного Брезенхемом, так же основан на идее выбора пиксела по принципу минимизации расстояния до реальной линии.
Рассмотрим участок окружности в 1-м октанте, где функция x = f(y), при начальных условиях х = 0, у = R является монотонно убывающей. На рисунке показаны возможные траектории прохождения реальной окружности.

Рис. 6-3
Основной расчетной формулой является формула окружности с центром в начале координат и радиусом R:
|
х2+ у2= R2 |
(4) |
Если воспользоваться данной формулой «впрямую» то возникнут два недостатка использования данного метода:
работа с действительными числами;
искажение реальной окружности при разложении в растр (см. рисунок).

Рис. 6-4
Алгоритм настроен на выбор пиксела, для которого минимален квадрат расстояния между одним из них и реальной траекторией окружности:
mh= |(xi+1)2+ (yi)2–R2|;
md= |(xi+1)2+ (yi-1)2–R2|;
mv= |(xi)2+ (yi-1)2–R2|.
Как и в случае построения прямой, на каждом i-м шаге вычисляется управляющая переменная Di, которая представляет собой разность между квадратами расстояний от центра окружности до диагонального пиксела (xi + 1, yi – 1) и от центра до реальной точки на окружности:
|
х2 Di = (xi + 1)2 + (yi – 1)2 – R2 |
(5) |
В случае 1 и 2 диагональный пиксел находится внутри реальной окружности (Di<0). Далее надо решить выбор направлений mh или md. Для этого вычисляется разность квадратов для этих пикселов:
|
di = |(xi + 1)2 + (yi)2 – R2| - |(xi + 1)2 + (yi – 1)2 – R2|,
|
(6) |
Аналогичным образом вычисляем ошибку для случаев 4 и 3. В итоге получим следующие соотношения:
Di<0
di <= 0 выбираем mh
di > 0 выбираем md
Di 0
di <= 0 выбираем md
di > 0 выбираем mv
Di= 0 выбираем md
Исходя из вышеизложенного, можно разработать следующие соотношения для реализации пошагового алгоритма с использованием целочисленных переменных:
для направления mh
xi+1= xi+ 1;
yi+1= yi;
Di+1= (xi+1+ 1)2+ (yi+1– 1)2– R2= Di+2xi+1+1.
для направления md
xi+1= xi+ 1;
yi+1= yi– 1;
Di+1= + 1)2+ (yi+1– 1)2– R2= Di+2xi+1- 2yi+1+ 2.
для направления md
xi+1 = xi;
yi+1 = yi – 1;
Di+1= Di- 2xi+1+ 1.
Операция умножения на 2 легко реализуется с помощью операции сдвига влево. Приведенный алгоритм работает в первом октанте. Для ускорения работы алгоритма используют принцип восьмисторонней симметрии, суть которого заключается в симметричном отображении октантов (см рисунок).

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