Читайте также: |
|
Идея: при рисовании линий обычным образом с каждым шагом по основной оси высвечивается два по неосновной оси.
Их интенсивность подбирается пропорционально расстоянию от центра до идеальной линии. Чем дальше т., тем < ее интенсивность. Значение интенсивности 2-ух дают в сумме 1, т.е. это интенсивность 1 , в точности попавшего на идеальную линию. Это придает линии одинаковую интенсивность на всем ее протяжении, создавая иллюзию, что точки расположены вдоль линии не по 2, а по одной в точности по идеальной линии.
Горизонтальные, вертикальные и диагональные линии не требуют сглаживания. Для других линий алгоритм Ву проходит их вдоль основной оси, подбирая координаты по неосновной оси. Смещение вдоль неосновной оси вычисляется 1 целочисленным делением (для линий с наклоном < 1 берется сам наклон, с наклоном > 1 – 1\2 наклона). Это значение называется ошибкой смещения. Ошибка накопления () показывает, как далеко ушли от идеальной линии по неосновной оси, и как только она достигает критического значения, делается шаг на 1 вдоль неосновной оси. Если основной осью является X, то будут установлены 2 т. с координатами (x,y) и (x,y+1). Короче говоря, продвижение вдоль линии аналогично алгоритму Брезенхэма, только на каждом этапе устанавливается не 1 , а 2. Осталось определить их интенсивность. Ошибка смещения суммируется с ошибкой накопления.
Пусть число уровней интенсивности кратно 2,
- min интенсивность — ,
- max интенсивность — 0.
Старшие n битов ошибки накопления покажут необходимую интенсивность для одного из . Интенсивность 2-го пары - интенсивность . Ошибка накопления содержит соотношение расстояний от центра каждого из двух до идеальной линии.
Дата добавления: 2015-07-14; просмотров: 219 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лестничный эффект | | | Заполнение области. Алгоритм построчного сканирования, алгоритм заполнения с затравкой. Заполнение линиями. |