Вопросы к 10 - p1xelse/CG GitHub Wiki

Какой цвет могут иметь пиксели области?

Изначально пиксели области могут иметь любой цвет, кроме граничного. Если же весь многоугольник был окрашен цветом заливки, то перекрасится только та строка, где выставлен затравочный пиксел. Затем проанализируется верхняя и нижняя строки, ни один новый пиксел не будет добавлен в стек и алгоритм будет прекращен. Также возможен случай когда 3 строки окрашены цветом заливки, а затравочный пиксел выбран в средней строке. Тогда фигура закрашена не будет.

Сколько раз анализируется цвет каждого пикселя?

В среднем 3 раза. Первый раз на строке пиксела, второй раз при поиске затравки на нижней, а третий раз на верхней.

Какой пиксель стоит брать в качестве затравочного и почему?

В заданном интервале поиска необходимо найти не первый попавшийся затравочный пиксель, а искать до тех пор пока не найдем самый правый затравочный пиксель в заданном интервале. Это нужно делать потому что рассматриваемый интервал пикселей может прерываться граничными пикселами или уже закрашенными пикселами, т.е рассматриваемый интервал может содержать в своем составе несколько непрерывных интервалов пикселей. Здесь будет понятно почему нужно брать самый правый, потому что если возьмем самый левый при движении слева направо, то мы не найдем затравочные пиксели для других интервалов входящий в состав исходного интервала и тем самым задачу не решим.

"Потому что в ином случае мы можем потерять одну из областей, которую необходимо было закрасить"

Чем отличается заполнение от закраски?

РАСТРОВЫЕ МЕТОДЫ(aka ЗАКРАСКА)
В растровых методах делается попытка определить в порядке сканирования строк принадлежность точки внутренней области контура или многоугольника. Эти алгоритмы обычно просматривают многоугольники (контуры) от верхней точки до нижней. Методы растровой развертки применимы обычно и к векторным дисплеям, в которых они используются для штриховки или закраски контуров. (растровая развертка = закраска)

ЗАТРАВКА (aka ЗАПОЛНЕНИЕ)
В методах затравочного заполнения предполагается, что известна некоторая точка (затравка), лежащая внутри замкнутого контура.
В алгоритмах затравочного заполнения ищут точки, соседние с затравочными и расположенные внутри контура. Если точка оказывается внутри контура, то она становится новой затравочной точкой и поиск продолжается рекурсивно. Если же точка расположена не внутри контура, то это означает, что обнаружена граница контура. Затравочные алгоритмы применимы только к растровым дисплеям.