На рис. 10.41 демонстрируется пример для метода Питтвэя и Уоткинсона. Наклон ребра полигона составляет 4/10. Точками отмечены пикселы, определенные по стандартному алгоритму Брезенхема, а затененная область в каждом из этих пикселов означает площадь внутри полигона. Для каждого пиксела приведено числовое значение, соответствующее этой площади: 0,5, 0,9, 0,3 и т. д. Считается, что первый пиксел покрыт на 50 %.
Из геометрических с оображений легко увидеть, что по мере движения вправо пиксел за пикселом затененная область или увеличивается на т - 0,4, если значение у остается неизменным, или уменьшается на 1 - т - 0,6, если значение у увеличивается (см. упражнения в конце раздела). Следовательно, нетрудно инкрементно обновлять эту область в рамках алгоритма Брезенхема.
Далее, пусть максимальное значение интенсивности, поддерживаемое буфером кадров, равно Мах1_еуе1. Для ребра с наклоном т находим ближайшее целое 1пс1=Мах1_еуе1 * т и или увеличиваем интенсивность каждого пиксела на 1пс1, или уменьшаем ее на 1 пс2=Мах1_еуе1 - 1 пс1. Основной цикл алго10.8. Ступенчатость; технологии сглаживания ритма Брезенхема (см. листинг 10.5) требуется только слегка изменить: если F < 0, то кроме обновления невязки на F += 2 * H нужно обновлять также интенсивность на col val += incl. Аналогично при F > 0 невязка обновляется на 2 * (Я - W), а интенсивность - на - i пс2. В своей оригинальной работе Питтвэй и Уоткинсон еще больше повысили эффективность своей процедуры, предусмотрев возможность замены F на col val в качестве тестовой переменной.
Рис. 10.41. Пример сканирующего преобразования со сглаживанием Предфильтрация работает с детализированной геометрической формой объекта (объектов), подвергнутого сканирующему преобразованию, и вычисляет усредненную интенсивность для каждого пиксела, исходя из того, как этот объект размещается внутри площади каждого пиксела. Для форм, отличных от полигонов, предфильтрация может оказаться технологией, весьма дорогостоящей с вычислительной точки зрения; поэтому мы поищем альтернативные методы сглаживания.