русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Размер букв и его масштабирование


Дата добавления: 2015-06-12; просмотров: 490; Нарушение авторских прав


19.9.4.1. Размер букв и строк. Всегда важно знать вертикальный и горизонтальный размер выводимой строки в пикселах. Это позволяет располагать строки пропорционально разрешающей способности графического режима, вычислять «текстовую» емкость окна и т.п. Функции {464}

TextHeight( TextString : String ) : Word;

и

TextWidth( TextString : String ) : Word;

возвращают высоту и ширину строк TextString в пикселах, при условии, что они будут выведены текущим шрифтом и размером (т.е. заданными последним вызовом SetTextStyle или по умолчанию). Для штриховых шрифтов размеры букв различаются (их начертание неравномерное), и длина и высота строки в пикселах зависит не только от количества букв в ней, но и от их начертания. Пример анализа расположения строк показан на рис. 19.35, выводящем рекламную информацию.

USES Graph; { подключен модуль Graph } {$I initgraf.pas) { процедура инициализации } CONST my_str = 'Turbo Pascal '; { выводимая строка текста } VAR maxx, maxy : Integer; { текущее разрешение экрана } tx, ty, i, j : Word; { временные переменные } BEGIN GrInit; maxx:=GetMaxX; maxy:=GetMaxY; { разрешение } SetTextJustify(CenterText, CenterText); { ориентация } SetTextStyle(SmallFont, HorizDir, 6); { стиль шрифта } tx := TextWidth(my_str); { ширина строки } ty := TextHeight(my_str); { высота строки } for j:=1 to (maxy div ty) do { цикл no оси Y } for i:=1 to (maxx div tx) do { цикл по оси X } OutTextXY( i*tx, j*ty, my_str ); { тело циклов } SetTextStyle(DefaultFont,HorizDir,6); { смена шрифта } tx := TextWidth ( 'W' ) div 6; { 1/6 ширины } ty := TextHeight( 'E' ) div 6; { 1/6 высоты } SetColor( LightRed ); OutTextXY( maxx div 2 + tx, maxy div 2 + ty, my_str ); SetColor( LightBlue ); OutTextXY( maxx div 2, maxy div 2, my_str ); ReadLn; { пауза до нажатия ввода } CloseGraph { закрытие режима графики } END.

Рис. 19.35



У процедуры OutTextXY есть одна особенность: выводимая текстовая строка всегда обрезается по границе графического окна. Более {465} того, если активным является матричный шрифт (DefaultFont), то «вылезающая» строка вообще не появляется на экране. Решать подобные проблемы можно, точно рассчитывая место выводимых в графике строк.

19.9.4.2. Масштабирование штриховых шрифтов. Размер букв (высота и ширина) штриховых шрифтов (и только их) может задаваться процедурой

SetUserCharSize( multX, divX, multY, divY : Word )

Она позволяет оперативно менять размер шрифта, установленный процедурой SetTextStyle. Отношение (multX/divX) задает масштабирование ширины начертания шрифта, а отношение (multY/divY) выражает масштаб изменения высоты шрифта. Например, задание параметров multX=3 и divX=1, говорит о том, что буквы выводимого шрифта будут в три раза шире нормы.



<== предыдущая лекция | следующая лекция ==>
Непосредственный вывод строк | Включение шрифтов и драйверов в ЕХЕ-файл


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.304 сек.