Практика программирования (Бейсик, Си, Паскаль)



         

Текстовые сообщения в графическом режиме - часть 3


/p>

Номер шрифта

Константа ТС

Константа ТР

Пояснение

8

C0MPLEX_F0NT

Мнемоника отсутствует

Двухобводный, разнотолщинный

9

EUR0PEAN F0NT

Мнемоника отсутствует

0днообводный

10

B0LD_F0NT

Мнемоника отсутствует

Жирный, равнотолщинный

Параметр dir принимает всего два значения — 0 (мнемоническая константа H0RIZ_DIR) или 1 (VERT_DIR). В первом случае устанавливается режим воспроизведения горизонтальных надписей, во втором — повернутых на 90° против часовой стрелки. Последнее может оказаться полезным для подписи вертикальных осей на графиках.

Третий параметр size, значения которого должны принадлежать интервалу [1,10], выполняет роль масштабного коэффициента, с помощью которого можно незначительно увеличивать (size > 4) или уменьшать (size < 4) размеры букв.

Гораздо более гибкое управление размерами букв в векторных шрифтах обеспечивает процедура setusercharsize:

SetUserCharSize(mx,dx,my,dy);

Ее целочисленные аргументы выполняют роль множителей и делителей для координат (х,у) каждой точки контура букв:

X=x*mx/dx; Y=y*my/dy;

Выбирая те или иные значения этих параметров, можно осуществить раздельное масштабирование по каждой оси, сделав, например, узкие или широкие буквы. Коэффициент увеличения можно довести до такого значения, при котором единственная буква занимает весь экран с четко различимыми элементами ее контура.

С помощью функций textwidth и textheight, единственным параметром которых является текстовая строка, можно определить ширину и высоту габаритного прямоугольника в пикселах. Предварительное знание размеров подписи может оказаться полезным при выборе места ее расположения в последующей процедуре outtextxy.

В качестве примера ниже приводится программа, с помощью которой были получены изображения букв на рис. 8.2. Подбор некоторых параметров этой программы был сделан экспериментальным путем. Сначала была выбрана линия строки, на которой должны были располагаться буквы разных шрифтов (у = 470). Затем путем подбора коэффициентов увеличения были установлены приемлемые габариты буквы А для шрифта SMALL_F0NT. Получившиеся при этом "круглые" размеры габаритного прямоугольника (w = 180, h =270) были использованы для определения масштабного коэффициента шрифтовSANS_SERIF_F0NT И TRIPLEX_F0NT. После нескольки пристрелочных проб, дававших "перелеты" и "недолеты", были найдены подходящие коэффициенты для каждого из шрифтов. Подбирать их пришлось по каждой оси свой и с точностью до второго знака после запятой. 0братите внимание на то, что одним и тем же коэффициентом не всегда удается выровнять размеры букв в разных шрифтах. 0бъясняется это тем, что разработка контуров векторных шрифтов выполнялась на координатных сетках с разными шагами. Более того, трансляция этой программы в системах ТС 2.0 и ВС 3.1 дает разные результаты т. к. в каждой из систем используются свои наборы шрифтов, которые слегка отличаются по начертаниям букв.




Содержание  Назад  Вперед