Пример заполнения области с использованием серий

Рис. 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">⇐ Предыдущая| |Следующая ⇒