Здравствуйте, Par-zzz, Вы писали:
PZ>Меня интересует алгоритм заливки произвольной графической области. Область на практике не большая, но в теории может достигать гипер размеров, т.о. рекурсия исключенна. Хотелось бы услышать ваше мнение о такого рода алгоритмах, их оптимальности и сложности. Примеры и ссылки приветствуются.
Предположим у тебя есть двумерный массив RGB.
Чёрный цвет соответствуют границам области.
Белый — в остальных местах.
Надо залить область красным.
Вот простейшая реализация волнового алгоритма.
Начинаем с некоторой точки внутри области.
Кладём её в очередь (массив или список точек (x,y)).
Далее крутимся в цикле, пока очередь не пуста.
Начало очереди красим в красный цвет.
Всех белых соседей этой точки вокруг кладём в конец очереди.
Убираем обработанную точку из головы очереди.