Заполнение замкнутых областей
3.9. Заполнение замкнутых областей
Для заполнения внутренней или внешней области фигуры определенным образцом закраски используется процедура
FloodFill( X, Y, Border ),
где X, Y – координаты точки внутри или вне фигуры, Border – цвет контура фигуры. Если точка (X, Y) находится внутри замкнутой области, то заполняется внутренняя область. Если эта точка находится вне замкнутой области, то заполняется ее внешняя часть.
Пример: Красная окружность заполненная зеленой штриховкой
SetColor( Red ); Circle( 450, 100, 50 );
SetFillStyle( SlashFill, Green );
FloodFill( 450, 100, Red );
4. Вывод текста в графическом режиме
4.1. Вывод текста
В графическом режиме стандартные процедуры вывода Write и Writeln не работают. Для вывода текстовой информации на графический экран используют две процедуры OutText и OutTextXY. Процедура
OutText( TextString )
выводит на экран строку текста начиная с текущего положения графического курсора. Например:
OutText( ‘Добро пожаловать!’ );
Явный недостаток этой процедуры – нельзя указать произвольную точку начала вывода. Его можно устранить с помощью процедуры MoveTo, которая перемещает указатель в нужную позицию, но лучше воспользоваться процедурой
OutTextXY( X, Y, TextString ),
где X, Y – координаты точки начала вывода текста, TextString – константа или переменная строкового типа string. Например, чтобы вывести сообщение “Для продолжения нажмите любую клавишу ...”, начиная с точки 20, 400 надо записать:
OutTextXY( 20, 400, ‘Для продолжения нажмите любую клавишу ...’ );
4.2. Вывод числовых значений
Для начинающих проблемой является вывод числовых данных на графический экран, ибо в модуле Graph нет предназначенных для этого процедур. Выход прост: преобразовать числовое значение в строковое с помощью процедуры Str.
Примеры:
X := 12.5;
Str(X:4:1, S) { преобразование числа x в строку S }
OutTextXY( 10, 10, S ); { вывод строки S }
max := 345.55;
Str(max:6:2, S) { преобразование числа max в строку S }
OutTextXY( 10, 50, ‘Максимальное значение = ’ + S ); { вывод суммы двух строк }