ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »