Краткая справка по языку программирования Turbo Pascal

       

Заполнение замкнутых областей



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 ); { вывод суммы двух строк }



Содержание раздела