HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
9 мая. В 1671 году (353 года назад) - Знаменитый ирландский искатель приключений Томас Блад, более известный как Капитан Блад, похитил в Тауэре изумруды из британской короны. Об этой истории нам поведал итальянский писатель Рафаэль Сабатини в романе "Одиссея Капитана Блада".
 
 

Turbo Pascal Documentation

Процедура FloodFill

Модуль Graph


     Функция: Заполняет ограниченную облать, используя теку-
щий заполнитель.
     Описание: FloodFill(x, y, граница : word)
     Примечания: Эта процедура используется  для  заполнения
замкнутой области (для растровых устройств). Точка (x,y) яв-
ляется внутренней точкой заполняемой области. Для заполнения
области,  ограниченной  цветом,  который определяет параметр
"граница", используется текущий образец закраски. Если точка
(x,y)  находится  внутри  замкнутой  области, то заполняется
внутренняя область. Если эта точка находится  вне  замкнутой
области,  то  заполняется  ее внешняя часть (поле экрана, не
входящее в область).
     Если при заполнении области происходит ошибка, то функ-
ция GraphResult возвращает значение -7 (grNoFloodMem).
     Заметим, что процедура FloodFill останавливается  после
того,  как выведено две пустых строки. Это может произойти в
том случае, когда заполнитель и маленький прямоугольник сли-
ваются.  В  следующей  программе  прямоугольник полностью не
закрашивается:

  program StopFill;
  uses Graph;
  var
    Driver, Mode: integer;
  begin
    Driver := Detect;
    InitGraph(Driver, Mode, 'c:\bgi');
    if GraphResult <> grOk then
       Halt(1);
    SetFillStyle(LtSlashFill, GetMaxColor);
    Rectangle(0, 0, 8, 20);
    FloodFill(1, 1, GetMaxColor);
    ReadLn;
    CloseGraph;
  end.

     В этом случае прямоугольник будет полностью  заклрашен,
если использовать более "густой" заполнитель типа SlashFill.
     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Прочее: См. также процедуры  SetFloodPattern,  SetFill-
Pattern.
     Пример:

  begin
   ...
    SetColor(Red);
    FloodFill(50,50,Blue);
     ...
  end.




HOME