заливка

From
Evgeniy Jirnov (2:5030/1230.13)
To
Alexander Kozlov
Date
2002-11-19T00:22:06Z
Area
RU.ALGORITHMS
Мир твоему дому, Alexander.


17 Ноя 02 16:41, Alexander Kozlov -> Evgeniy Jirnov:

 AK>>>   Ищется алгоpитм заливки, по типу как в Paint'e. Но только
 AK>>> заливать надо не цветом, а "цифpами", но суть дела это не
 AK>>> меняет.
 EJ>> Если массив небольшой, то так:
 EJ>> Procedure Fill(X,Y:Integer);
 EJ>> Begin
 EJ>>   A[X,Y]:=1;
 EJ>>   if A[X+1,Y]<>1 then Fill(X+1,Y);
 EJ>>   if A[X-1,Y]<>1 then Fill(X-1,Y);
 EJ>>   if A[X,Y+1]<>1 then Fill(X,Y+1);
 EJ>>   if A[X,Y-1]<>1 then Fill(X,Y-1);
 EJ>> end;
 EJ>> Если большой, то применить сканирование линиями...
 AK> Массив динамический, но, думаю, он вpяд ли будет пpевышать 100х100.

Тогда по идее и этот метод подойдет...

 AK> А чем сканиpование линиями лучше - быстpее?

Лучше тем, что используется меньше рекурсивных вызовов. Да и быстрее он. Но, если требуется закрасить маленькую непрямоугольную площадь, то сканирование линий работает медленнее, чем закраска по точкам (см. выше).

С уважением _Evgeniy_

... 83 AB E3 AF A0 EF 20 E2 E0 A0 E2 A0 20 A2 E0 A5 AC A5 AD A8 21
--- np: silence (Winamp is not active ;-)
 * Origin: До знаменательного события осталось 4 дня. (2:5030/1230.13)