Рис. 10.25. Пример заполнения области с использованием серий Затем данные выталкиваются из стека, образуется новая начальная точка й и процесс повторяется. Закрашивается серия от й до е, и обнаруживаются три внутренние серии. Пикселы /^иА проталки-
Средства для растровой графики
ваются в стек. Пиксел h затем выталкивается, его серия закрашивается, после чего обнаруживаются еще две серии i и j. Ситуация на этой стадии показана на рис. 10.25, в. Этот процесс продолжается до тех пор, пока стек не опустеет, к этому моменту уже будут закрашены все внутренние пикселы, достижимые из начальной точки. Представляется полезным пройти этот пример вручную для лучшего понимания данного алгоритма. (Как можно расширить этот метод на 8-связные области? См. упражнения в конце раздела.)
Листинг 10.7. Скелет алгоритма серийного закрашивания
Push address of seed pixel on the stack;
II проталкиваем в стек адрес начального пиксела
whileistack not empty)
I/ стек не пуст
{
Pop the stack to provide the next seed; II выталкиваем из стека очередную начальную точку
Fi 11 in the run defined by the seed"opengl1_714.html">⇐ Предыдущая| |Следующая ⇒