Программа.

Задача.

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