Skip to content

11. Основы методов устранения ступенчатости. Алгоритм Брезенхема с устранением ступенчатости. Алгоритм Ву.

Pandas edited this page May 21, 2017 · 1 revision

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

  1. увеличить частоту выборки, что достигается с помощью увеличения размещения растра => учитываются более мелкие детали
  2. трактовать пиксел не как точку, а как конечную область(высвечивать пиксел с разной интенсивностью6 пропорциональной площади части пиксела, находящийся под отрезком). При наличии нескольких оттенков цвета внешний вид отрезка улучшается путем размывания его краев.

Imgur

Алгоритм

  1. Ввод исходных данных Xн,Yн,Xк,Yк (координаты концов отрезка), I - количество уровней интенсивности
  2. Проверка вырожденности отрезка. Если отрезок вырожден, то высвечивание отдельного пиксела и переход к п.13
  3. Вычисление приращений dX=Xк-Xн и dY=Yк-Yн
  4. Вычисление шага изменения каждой координаты: SX=sign(dX), SY=sign(dY)
  5. Вычисление модулей приращения координат: dX=|dX|, dY=|dY|
  6. Вычисление модуля тангенса угла наклона m=dY/dX
  7. Анализ вычисленного значения m и обмен местами dX и dY при m>1
    1. если m>1, то выполнить p=dX; dX=dY; dY=p; m=1/m; fl=1
    2. если m<1, то fl=0
  8. Инициализация начального значения ошибки f=I/2
  9. Инициализация начальных значений координат текущего пиксела: X=Xн, Y=Yн
  10. Вычисление скорректированного значения тангенса угла наклона m=mI и коэффициента W=I-m
  11. Высвечивание пиксела с координатами (X,Y) интенсивностью E(f)
  12. Цикл от i=1 до i=dX с шагом 1
    1. Если f<W, то
      a) если fl=0, то X=X+SX
      b) если fl=1, то Y=Y+SY
      c) f=f+m
    2. Если f>W, то X=X+SX, Y=Y+SY, f=f-W
    3. Высвечивание пиксела с координатами (X,Y) интенсивностью E(f)
  13. Конец
Clone this wiki locally