CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
floodfill
floodfill
Функция Заполняет ограниченную область. Синтаксис #include <graphics.h> void far floodfill(int x, int y int border); Файл, содержащий graphics.h прототип Описание floodfill заполняет ограниченную область на устройствах с побитовым отображением. (x,y) - произвольная точка внутри закрашиваемой области. Область, граница которой окрашена цветом border,заполняется текущим цветом закраски и шаблоном. Если указанная точка находится внутри ограниченной области,то окрашивается область, а если снаружи, то закрашивается все поле за пределами области. Используйте, если это возможно, fillpoly вместо floodfill. Это позволит обеспечить кодовую совместимость с будущими версиями. Замечание. floodfill не работает с драйвером IBM-8514. Возвращаемое Если в процессе заполнения области возникла значение ошибка, то graphresult возвращает значение -7. Переносимость Функция уникальна для Borland C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows. Смотрите также drawpoly, fillpoly, graphresult, setcolor, setfillstyle. Пример: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int maxx,maxy; /* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,""); /* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormessage(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } maxx = getmaxx(); maxy = getmaxy(); /* выбор цвета рисования */ setcolor(getmaxcolor()); /* выбор цвета заполнения */ selectfillstyle(SOLID_FILL,getmaxcolor()); /* нарисовать границу вокруг экрана */ rectangle(0,0,maxx,maxy); /* нарисовать несколько окружностей */ circle(maxx/3,maxy/2,50); circle(maxx/2,20,100); circle(maxx-20,maxy-50,75); circle(20,maxy-20,25); /* ожидать нажатия клавиши */ getch(); /* заполнить ограниченную область */ floodfill(2,2,getmaxcolor()); /* очистка */ getch(); closegraph(); return 0; }