Программа.
Задача.
Процедура 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.