заливка
- 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)