процедура floodfill

Процедура FloodFill зафарбовує закриту область. Дана процедура має 3 параметри. Перші 2 параметра визначають точку з координатами, звідки починається зафарбування. 3-й параметр визначає межу зафарбовування.

Рядок №19. Встановлюємо червоний колір для окружності.

Рядок №20. Встановлюємо тип і колір зафарбування.

Рядок №21. Малюємо коло.

Рядок №22. Встановлюємо зелений колір для 2-ий окружності.

Рядок №23. Малюємо 2-у коло.

Рядок №24. Процедура FloodFill зафарбовує закриту область. Перші 2 параметра є координатою і визначають, яка область буде зафарбована. У нашому прикладі ці параметри мають значення 150 пікселів, 150 пікселів. Ця точка входить в обидві окружності, які ми намалювали. Тому якась із цих кіл буде зафарбована. Яка саме - залежить від 3-го параметра процедури. Він визначає колірну кордон зафарбовування. У нашому прикладі цей параметр дорівнює 2, тобто має зелену колірну кордон. Тому буде зафарбована зелена окружність (та, що в рядку №23).
Тип і колір зафарбовування встановлений в рядку №20.

процедура floodfill

процедура floodfill

Тепер поміняємо рядок №24, встановивши в якості колірної кордону червоний колір (рядок №24 матиме вигляд FloodFill (150,150, 4)). Після цих змін кордоном зафарбовування буде червона окружність.
Після запуску програми вийде:

Якщо перші 2 параметра матимуть інші координати, які виходять за межі кіл, то зафарбована буде вся область, яка лежить за межами кіл.
Змінимо рядок №24 на таку: FloodFill (300,300, 4). В результаті, буде зафарбована область, що лежить за межами обох кіл. Причому кордоном зафарбовування буде червона окружність.

Тепер змінимо рядок №24 на таку FloodFill (300,300, 2). В результаті буде зафарбована область, що лежить за межами зеленої окружності.

Якщо в якості 3-го параметра вказати неіснуючу колірну кордон, то буде зарисований весь екран. Наприклад, запишемо рядок №24 в такому вигляді FloodFill (300,300, 1). Тут в якості колірної кордону вказано синій колір, але в нашій програмі немає замкнутих областей, що мають синю кордон, тому буде зарисований весь екран.