мұндағы X, Y – тұйық фигураның ішіндегі кез келген нүкте координатасы; Border – шекара сызығының түсі.
Егер фигура тұйық болмаса, онда бүкіл экран боялады. Процедурадағы тұйық фигураның шекарасын қарау алгоритмі-
нің жетік емес екендігін есте сақтау керек. Егер қатарынан екі бос жол шығарылатын болса, онда бояу тоқтатылады. Мұндай жағдай көбіне LtSlashFill типін қолданып, кішігірім фигураны бояғанда пайда болады. Турбо Паскаль тілінің фирмалық нұсқауларында FloodFill процедурасының орнына, мүмкіндігінше, FillPoly про-цедурасын қолдануға кеңес берілген.
Келесі программа кездейсоқ дөңгелектер ішін бояуды көр-сетеді. Алдымен экранда терезе салынып, оның ішінде тікбұ-рышты бояйды. Тікбұрыштың жартысы боялмай қалады, себебі программа жұмысын тоқтатып, Enter пернесінің басылуын кү-теді. Сонан кейін, экранға кездейсоқ дөңгелектер салынып, кез келген перне басылғанша боялады. Егер LtSlashFill типінің ор-нына SlashFillтипі қолданылса, тікбұрыш толығымен боялады. Егер программа өте ұзақ жұмыс істейтін болса, ол тұрып қалуы мүмкін, бұл көрсетілген алгоритмнің жетік еместігін дəлелдейді.
uses Graph, CRT;
var
d,r,е,х,у,с: Integer; begin
{Графиканы іске қосамыз} d:=Detect; InitGraph(d,r,''); e:=GraphResult;
if e <> grOk then WriteLn(GraphErrorMsg(e)) else
begin
{Терезе саламыз}
х:=GetMaxX div 4; у:=GetMaxY div 4; Rectangle(х,у,3*x,3*y); SetViewPort(x+1,y+1, 3*x-1,3*y-
1,ClipOn);
{Кішкене тікбұрыштың боялуын көрсетеміз }
210
SetPillStyle(LtSlashFill,GetMaxColor);
Rectangle(0,0,8,20); FloodFill(1,1,GetMaxColor); OutTextXY(10,25,'Press Enter...');
ReadLn; { Enter пернесінің басылуын
күтеміз}
{Кез келген перне басылғанша дөңгелектер са-
ламыз}
repeat
{Кездейсоқ бояу стилін анықтаймыз} SetFillStyle(Random(12),Random(GetMaxCol
or+1));
{Дөңгелектің центрінің координатасы мен түсін береміз}
х:=Random (GetMaxX div 2); у:=Random (GetMaxY div 2); с:=Random (succ(GetMaxColor));
SetColor(c);
{Дөңгелекті шығарып, бояймыз}
Circle(x, у,Random(GetMaxY div 5)); FloodFill (x,у,с); until KeyPressed;
if ReadKey=#0 then
x:=ord(ReadKey);
CloseGraph;
end
end.