Компьютерная подготовка технической документации. Сергеев А.И - 16 стр.

UptoLike

Составители: 

16
прямыми, начинаться и заканчиваться в заданных точках, яркость вдоль отрезка должна
быть постоянной и не зависеть от длины и наклона. Наконец, рисовать нужно быстро.
Проанализируем, все ли из перечисленных критериев могут быть полностью удовлетворе-
ны. Устройство растрового дисплея исключает генерацию абсолютно прямых линий (кро-
ме ряда специальных случаев), равно как и точное совпадение начала и конца отрезка с
заданными точками. Тем не менее, при достаточно высоком разрешении дисплея можно
получить приемлемую аппроксимацию. Постоянная вдоль всего отрезка яркость достига-
ется лишь при проведении горизонтальных, вертикальных и наклоненных под углом 45°
прямых. Для всех других ориентаций разложение в растр приведет к неравномерной ярко-
сти, как это показано на рис. 5.1. Даже для частных случаев яркость зависит от наклона:
заметим, например, что расстояние между соседними пикселями для отрезка под углом
45° больше, чем для вертикальных и горизонтальных прямых. Поэтому вертикальные и
горизонтальные отрезки будут выглядеть ярче, чем наклонные. Обеспечение одинаковой
яркости вдоль отрезков разных длин и ориентаций требует извлечения квадратного корня,
а это замедлит вычисления. Обычным компромиссом является нахождение приближенной
длины отрезка, сведение вычислений к минимуму, предпочтительное использование це-
лой арифметики, а также реализация алгоритмов на аппаратном или микропрограммном
уровне.
Большинство алгоритмов вычерчивания графических элементов для упрощения вычис-
лений используют пошаговый метод. Простой пошаговый алгоритм был разработан Бре-
зенхемом. Первоначально он был разработан для цифровых графопостроителей, а затем
адаптирован для растровых устройств. Алгоритм выбирает оптимальные растровые коор-
динаты для представления отрезка. В процессе работы одна из координат - либо x, либо у
(в зависимости от углового коэффициента) - изменяется на единицу. Изменение другой
координаты (либо на нуль, либо на единицу) зависит от расстояния между действитель-
ным положением отрезка и ближайшими координатами сетки. Такое расстояние мы назо-
вем ошибкой.
Алгоритм построен так, что требуется проверять лишь знак этой ошибки. На рис. 5.2
это иллюстрируется для отрезка в первом октанте, т. е. для отрезка с угловым коэффици-
ентом, лежащим в диапазоне от нуля до единицы. Из рисунка можно заметить, что если
угловой коэффициент отрезка из точки (0, 0) больше чем 1/2, то его пересечение с прямой
x = 1 будет расположено ближе к прямой y = 1, чем к прямой x = 0. Следовательно, точка
растра (1,1) лучше аппроксимирует ход отрезка, чем точка (1, 0). Если угловой коэффици-
ент меньше 1/2, то верно обратное. Для углового коэффициента, равного 1/2, нет какого-
либо предпочтительного выбора. В данном случае алгоритм выбирает точку (1, 1).
прямыми, начинаться и заканчиваться в заданных точках, яркость вдоль отрезка должна
быть постоянной и не зависеть от длины и наклона. Наконец, рисовать нужно быстро.
Проанализируем, все ли из перечисленных критериев могут быть полностью удовлетворе-
ны. Устройство растрового дисплея исключает генерацию абсолютно прямых линий (кро-
ме ряда специальных случаев), равно как и точное совпадение начала и конца отрезка с
заданными точками. Тем не менее, при достаточно высоком разрешении дисплея можно
получить приемлемую аппроксимацию. Постоянная вдоль всего отрезка яркость достига-
ется лишь при проведении горизонтальных, вертикальных и наклоненных под углом 45°
прямых. Для всех других ориентаций разложение в растр приведет к неравномерной ярко-
сти, как это показано на рис. 5.1. Даже для частных случаев яркость зависит от наклона:
заметим, например, что расстояние между соседними пикселями для отрезка под углом
45° больше, чем для вертикальных и горизонтальных прямых. Поэтому вертикальные и
горизонтальные отрезки будут выглядеть ярче, чем наклонные. Обеспечение одинаковой
яркости вдоль отрезков разных длин и ориентаций требует извлечения квадратного корня,
а это замедлит вычисления. Обычным компромиссом является нахождение приближенной
длины отрезка, сведение вычислений к минимуму, предпочтительное использование це-
лой арифметики, а также реализация алгоритмов на аппаратном или микропрограммном
уровне.
  Большинство алгоритмов вычерчивания графических элементов для упрощения вычис-
лений используют пошаговый метод. Простой пошаговый алгоритм был разработан Бре-
зенхемом. Первоначально он был разработан для цифровых графопостроителей, а затем
адаптирован для растровых устройств. Алгоритм выбирает оптимальные растровые коор-
динаты для представления отрезка. В процессе работы одна из координат - либо x, либо у
(в зависимости от углового коэффициента) - изменяется на единицу. Изменение другой
координаты (либо на нуль, либо на единицу) зависит от расстояния между действитель-
ным положением отрезка и ближайшими координатами сетки. Такое расстояние мы назо-
вем ошибкой.
  Алгоритм построен так, что требуется проверять лишь знак этой ошибки. На рис. 5.2
это иллюстрируется для отрезка в первом октанте, т. е. для отрезка с угловым коэффици-
ентом, лежащим в диапазоне от нуля до единицы. Из рисунка можно заметить, что если
угловой коэффициент отрезка из точки (0, 0) больше чем 1/2, то его пересечение с прямой
x = 1 будет расположено ближе к прямой y = 1, чем к прямой x = 0. Следовательно, точка
растра (1,1) лучше аппроксимирует ход отрезка, чем точка (1, 0). Если угловой коэффици-
ент меньше 1/2, то верно обратное. Для углового коэффициента, равного 1/2, нет какого-
либо предпочтительного выбора. В данном случае алгоритм выбирает точку (1, 1).




                                                                                          16