Растровый символ GLUT можно получить с помощью функции

glutBitmapCharacter (font, character); Здесь параметру font присваивается значение символьной константы GLUT, которая указывает на определенный набор начертаний, а параметру character присваивается либо код ASCII, либо отдельный символ, который мы хотим изобразить. Таким образом, чтобы изобразить прописную букву “А”, можно воспользоваться либо значением 65 кода ASCII, либо обозначением 'А'. Аналогично значение кода 66 эквивалентно обозначению ' В', код 97 соответствует прописной букве 'а', код 98 соответствует 'Ь', и так далее. Возможны шрифты как с постоянной шириной символов, так и с пропорциональными промежутками. Моноширинный шрифт можно выбрать, присвоив параметру font значение GLUT_BITMAP_8_BY_13 или GLUT_BITMAP_9_BY_15. А пропорциональный шрифт размером 10 pt можно выбрать с помощью команд GLUT_BITMAP_TIMES_ ROMAN_10 или GLUT_BITMAP_HELVETICA_10. Возможен и шрифт Times-Roman размером 12 pt, а также шрифты Helvetica размером 12 и 18 pt.

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

glRasterPosition2i (х, у); for (к =0; к < 36; к++)

glutBitmapCharacter (GLUT_BITMAP_9_BY_15, text [к]); Символы изображаются в том цвете, который был задан до выполнения функции glutBitmapCharacter.

Эскизный символ изображается путем вызова следующей функции.

glutStrokeCharacter (font, character); Для этой функции параметру font можно присвоить значение GLUT_STROKE_ ROMAN, чтобы изобразить пропорциональный шрифт, или GLUT_STROKE_MONO_ ROMAN, чтобы представить моноширинный шрифт. Размер и положение этих символов можно контролировать с помощью операций преобразований (глава 5), которые вызываются перед выполнением процедуры glutStrokeCharacter. После изображения каждого символа автоматически прибавляется прирост по координате, так что место, в котором будет изображаться следующий символ, находится справа от текущего символа. Текстовые строки, полученные с помощью эскизных шрифтов, являются частью геометрического описания двух- или трехмерных сцен, поскольку они состоят из геометрических линий. Таким образом, их можно рассматривать из различных точек, т.е. их можно без каких-либо искажений сжимать, растягивать или преобразовывать каким-то другим способом. Однако они визуализируются медленнее, чем растровые шрифты.

ДЕЛЕНИЕ РИСУНКА НА ЧАСТИ

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


⇐ вернуться назад | | далее ⇒