SetTextStyle(TriplexFont,HorizDir,4) ;

OutText('Ошибка при регистрации шрифта') end;

ReadLn;

CloseGraph end.

Процедура OutStrincr. Выводит текстовую строку в текущую позицию графического экрана. Заголовок:

Procedure OutString(S: String; Font,Angle: Integer;

ScaleX,ScaleY: Real);

Здесь S — текстовая строка, которую требуется вывести на экран; Font — номер векторного шрифта (шрифт должен быть предварительно заре — гистрирован с помощью функции RegisterCHRFile или RegisterCHRFontj;

Angle — угол по отношению к горизонтальной координате экрана, на которую должен быть повернут выводимый текст (задается целым числом угловых градусов; положительные углы отсчитываются против часовой стрелки); ScaleX, ScaleY — масштабные коэффициенты соответственно по ширине шрифта и по его высоте.

Перед выводом процедура вначале определяет текущее положение графического указателя с помощью вызова GetX, GetY и считает это по — ложение точкой отсчета локальных координат первого выводимого симво — ла. После вывода очередного символа эта точка смещается в соответствии с векторными командами, а после завершения вывода всей строки графический указатель перемещается в конец последнего выведенного символа. Локальные координаты каждой векторной команды умножаются на масштабные коэффициенты ScaleX, ScaleY и затем пересчитываются с учетом требуемого угла поворота. Поскольку в процедуре интенсивно используются тригонометрические преобразования координат, вывод с ее помощью происходит заметно медленнее, чем в случае использования стандартных процедур OutText, OutTextXY. Для ускорения счета все тригонометрические преобразования осуществляются над данными типа Single, что примерно в 5...8 раз сокращает время вывода на ПК с арифметическими сопроцессорами.

1.3.4. Тестовая программа

В следующей программе иллюстрируется использование средств модуля F_GrText. Программа вначале выводит несколько раз одно и то же сообщение с помощью процедуры OutString. Для каждого символа сообщения устанавливается свой угол наклона, плавно меняющийся от 0 до 30 градусов и обратно (см. рис. 1,5).