Более эффектные для восприятия прямоугольники можно строить с помощью процедурыBar, которая рисует закрашенный столбец. Цвет закраски устанавливается с помощью SetFillStyle.
Для задания углов используется полярная система координат (см. рис.6.2).
Рис.6.2. Полярная система координат
Процедура вычерчивания окружности текущим цветом имеет следующий формат:
Circle (X, Y, Radius :word);
где X, Y – координаты центра окружности,
Radius – ее радиус.
Например.
SetColor(Green);
Circle (450, 100, 50);
обеспечит вывод окружности зеленого цвета с радиусом 50 пикселей и центром в точке (450, 100).
Для вычерчивания дуги используется процедура
Arc(X, Y : integer; StAngle, EndAngle, Radius : word);
где X, Y – координаты центра окружности,
StAngle и EndAngle – начальный и конечный угол,
Radius – ее радиус.
Если StAngle=0 и EndAngle=359, то вычерчивается полная окружность.
Например.
SetColor(Red);
Arc (450, 100, 0, 90, 50);
позволит вывести дугу красного цвета от 0 до 90 градусов.
Для построения эллиптических дуг предназначена процедура
Ellipse(X,Y : integer; StAngle, EndAngle : word, xR, yR : word);
где X, Y – центр эллипса в линейных координатах,
xR, yR – горизонтальные и вертикальные оси.
Если StAngle=0 и EndAngle=360, то вычерчивается полный эллипс.
Например.
SetColor(LightCyan);
Ellipse (100, 100, 0, 360, 30, 50);
выводит эллипс ярко-голубого цвета, причем фон внутри эллипса совпадает с фоном экрана.
Чтобы создать закрашенный эллипс используется специальная процедураFillEllipse, а заполнитель устанавливается процедурами SetFillStyle и SetColor.
FillEllipse(X,Y : integer; xR, yR : word);
Например.
SetFillStyle(10, 2); {Установка стиля заполнения}
SetColor(LightCyan); {Цвет для вычерчивания эллипса}
Ellipse (100, 100, 0, 90, 50);
В этом фрагменте эллипс вычерчивается ярко-красной кривой и заполняется приведенной в таблице 6.3 стандартной маской 10 (редкие точки) зеленого цвета.
Для создания и заполнения сектора в эллипсе используется процедура
Sector(X,Y : integer; StAngle, EndAngle, xR, yR : word);
где X, Y – центр,
xR, yR – горизонтальные и вертикальные радиусы.
Сектор вычерчивается от начального угла StAngle до конечного угла EndAngle текущим цветом и заполняется стилем, заданной процедурой SetFillStyle.
Например.
SetFillStyle(11, 9);
SetColor(13);
Sector(300, 150, 180, 135, 60, 70);
6.3 РАБОТА С ТЕКСТОМ
Выводимые на экран изображения обычно сопровождаются пояснительным текстом. В графических режимах для этого используются процедуры OutText и OutTextXY.
Процедура OutText выводит строку текста, начиная с текущего положения курсора.
OutText(Textstring : string)
где Textstring – константа или переменная типа string.
Например,OutText(‘Вводите данные: ‘);
Явный недостаток этой процедуры – нельзя указать произвольную точку начала вывода. Его можно устранить с помощью процедуры OutTextXY.
выводит сообщение “Для продолжения нажмите любую клавишу”, начиная с точки 60, 100.
Вывод текста в графических режимах может осуществляться самыми различными стандартными и пользовательскими шрифтами. Различают два типа шрифтов: растровые и и векторные. Растровый задается матрицей точек, а векторный – рядом векторов, составляющих символ.
По умолчанию после инициализации графического режима устанавливается шрифт DefaultFont, который, как правило, является шрифтом, используемым установленным драйвером клавиатуры. Активизация нужного шрифта осуществляется с помощью процедуры
SetTextStyle(Font : word; Direction : word, CharSize : word);
где Font – выбранный шрифт,
Direction – направление (горизонтальное или вертикальное),
CharSize – размер выводимых символов.
Возможные значения двух первых параметров представлены в таблице 6.6.