Задача.
Процедура FloodFill.
Процедура SetFillStyle.
Процедура SetColor.
Процедура SetLineStyle.
Процедура SetLineStyle(style,0,thickness) устанавливает стиль рисуемых линий.
| стиль линии | значение аргумента style |
| сплошная | SolidLn |
| пунктирная | DottedLn |
| штрихпунктирная | CenterLn |
| штриховая | DashedLn |
| стиль линии | значение аргумента thickness |
| нормальная толщина | |
| толстая линия |
Замечание.
Второй аргумент используется при задании своего стиля линии.
Процедура SetColor(color) устанавливает цвет рисуемых линий.
| цвет | значение аргумента color | код |
| Чёрный | Black | |
| Синий | Blue | |
| Зелёный | Green | |
| Бирюзовый | Cyan | |
| Красный | Red | |
| Розовый | Magenta | |
| Коричневый | Brown | |
| Светло-серый | LightGray | |
| Тёмно-серый | DarkGray | |
| Светло-синий | LightBlue | |
| Светло-зелёный | Light Green | |
| Светло-бирюзовый | Light Cyan | |
| Светло-красный | Light Red | |
| Светло-розовый | Light Magenta | |
| Жёлтый | Yellow | |
| Белый | White |
Процедура SetFillStyle(style,color) устанавливает цвет и стиль заливки.
| стиль заливки | значение аргумента style | код |
| Сплошное заполнение цветом фона | EmptyFill | |
| Сплошное заполнение заданным цветом | SolidFill | |
| Заполнение горизонтальными линиями | LineFill | |
| Диагональное заполнение (///) | LtSlashFill | |
| Диагональное заполнение толстыми линиями | SlashFill | |
| Обратное диагональное заполнение толстыми линиями | BkSlashFill | |
| Обратное диагональное заполнение (\\\) | LtBkSlashFill | |
| Клетчатое заполнение | HatchFill | |
| Косое клетчатое заполнение | XhatchFill | |
| Чередующееся линейное заполнение | InterleaveFill | |
| Редко расположенные точки | WideDotFill | |
| Часто расположенные точки | CloseDotFill | |
| Стиль определён пользователем | UserFill |
Замечание.
В обращениях к процедурам SetColor и SetFillStyle вместо английских названий цвета и стиля заливки можно использовать соответствующие коды.
Процедура FloodFill(x,y,color) закрашивает область, внутри которой находится точка с координатами (x,y). Закрашиваемая область должна быть ограничена замкнутой линией цвета color.
Замечание.
Распространённая ошибка – на вопрос о том, каким цветом будет красить оператор FloodFill(100,200,0), отвечают: "Чёрным", хотя нужно отвечать: "Не знаю, надо посмотреть в SetFillStyle".
Нарисовать жёлтый квадрат и закрасить его горизонтальными линиями красного цвета.
USES Graph;
VAR Device,Mode:Integer;
BEGIN
Device:=0;
InitGraph(Device,Mode,'a:\TP\BGI');
SetColor(14);
SetFillStyle(2,4);
Rectangle(200,50,300,150);
FloodFill(250,100,14);
ReadLn;
CloseGraph
END.
![]() |







