При выводе
графических изображений на экран иногда нужно вывести текстовые
обозначения или надписи.
Отметим, что в
графическом режиме все действия производятся только со строковыми
константами и переменными. Вся числовая информация должна быть
предварительно преобразована в символьную с помощью процедуры
Str.
В графическом
видеорежиме вывод текстовой информации выполняется с помощью
штриховых и побитовых (растровых, матричных) шрифтов. В штриховых
шрифтах при построении символа используется векторный способ (симнол
определяется серией отрезков). Побитовый или растровый шрифт
определен матрицей 8X8 пикселей для каждого символа.
Главное отличие
штриховых шрифтов от растровых состоит в том, что при увеличении
размеров символов растрового шрифта качество изображения ухудшается,
а при увеличении размера символов штрихового шрифта — не ухудшается.
Каждый штриховой
шрифт хранится в соответствующем файле с расширением .сhr.
Необходимо, чтобы файлы *.сhr находились в том же каталоге, что и
файлы графических драйверов (*.bgi).
Стандартный набор
шрифтов может включать 9 шрифтов, однако не все из них подключают
русский алфавит.
Константы некоторых
типов шрифтов представлены в таблице.
Константа |
Значение |
Название шрифта |
DefaultFont
TriplexFont
SmallFont
SansSerifFont
GothicFont |
0
1
2
3
4 |
Растровый
8X8
Полужирный
Тонкий
Рубленый
Готический |
По умолчанию
принимается растровый шрифт DefaultFont размера
1.
Процедура
SetTextStyle(Font:word;Direction:word;
CharSize:word); служит для установки шрифта.
В ней Font задает шрифт,
Direction — ориентацию и направление вывода символов,
CharSize — размер отображаемых символов.
Direction
может принимать значение HorizDir=0 (направление слева направо) или
VertDir=1 (направление снизу вверх). Если указать Direction=2, то
каждый символ будет повернут на 90° против часовой стрелки (т. е.
окажется «лежащим на боку»), и вывод будет производиться в
горизонтальном направлении, однако не все
шрифты поддерживают этот режим.
Параметр
CharSize (размер символов) может принимать целочисленные
значения от 0 до 10, причем 0 соответствует размеру, стандартному
для данного шрифта, а 10 является максимальным размером, но не для
всех шрифтов.
Процедура
SetUserCharSize(MultX,DivX,MultY,DivY:word);
позволяет управлять размером символов. Здесь первые два параметра
задают размер по горизонтали, два следующие — по вертикали. Если
принять за 1 значение ширины символа стандартного шрифта, то
отношением MultX/DivX задается ширина символа шрифта, a MultY/DivY —
высота.
Вывод текстовой
информации на экран в графическом режиме выполняется процедурами
OutText и OutTextXY.
Процедура
OutText(TextString: string); выводит на
экран строку текста, начиная с текущего положения указателя.
Процедура
OutTextXY(X,Y: integer; TextString:string):
выводит строку текста, начиная с точки, имеющей координаты (X,Y).
Упражнение
Создайте
программу вывода на экран изображений геометрических фигур:
прямоугольника, квадрата, окружности, эллипса, сектора эллипса. В
верхней части экрана выведите заголовок "Геометрические фигуры», в
нижней части справа вертикально создайте надпись, содержащую вашу
фамилию.