Text, FontStyle (Текст, стиль шрифта)
Я скептически отношусь к узлу Text и вспомогательному к нему FontStyle. Почему - несколько позже, после того как объясню, как они работают.
Text (текст)
Описание:
Text {
string []
fontStyle NULL
length []
maxExtent 0.0
}
По умолчанию текст располагается в плоскости Z=0 локальной системы координат, т.е. в пределах данного раздела children. В разделе string прописывается, собственно, строка текста.
О разделе fontStyle необходимо сказать отдельно.
Раздел length: если length больше, чем приведенная в string строка, то ЛИБО МАСШТАБИРУЕТСЯ ТЕКСТ, ЛИБО УВЕЛИЧИВАЕТСЯ МЕЖБУКВЕННОЕ РАССТОЯНИЕ (цитата "If the string is too short, it is stretched (either by scaling the text or by adding space between the characters).
Классическая фраза из учебника программирования %) Просмотр. Текст кода.
Обратите внимание на разбивку текста в поле string на два куска в кавычках ["blah-","blah"]. Это дает размещение текста в две строки.
В случае записи ["blah-blah"] - текст разместится в одну строку.
FontStyle (стиль шрифта)
Описание:
FontStyle {
family "SERIF"
horizontal TRUE
justify "BEGIN"
language " "
leftToRight TRUE
size 1.0
spacing 1.0
style "PLAIN"
topToBottom TRUE
Описание раздела FontStyle позволяет несколько отрегулировать вид текста.
По порядку:
- family - определяет начертание шрифта. Возможны три значения поля family: SERIF (по умолчанию) - приблизительно соответствует Times Roman, SANS - соответствует шрифту Helvetica, TYPEWRITER - моноширинный шрифт типа Courier'а.
Просмотр. Текст кода.
Отличия в начертании налицо.
- horizontal - это очевидно, что отвечает за написание строки по горизонтали (horizontal TRUE - по умолчанию) или по вертикали (horizontal FALSE)
Просмотр. Текст кода.
- justify - то, что в других программах еще называется alignment или "выравнивание". Может принимать 4 значения. Первые три: BEGIN, MIDDLE, END соответствуют выравниванию соответственно по левому краю, по центру, по правому краю. Четвертое значение FIRST отвечает за выравнивание по дополнительной оси, т.е. по вертикали, если текст расположен горизонтально и по горизонтали для вертикального текста.
Просмотр. Текст кода.
- language - как Вы могли заметить все примеры про текст были английскими фразами. Даже если переключиться в кириллицу и загнать в wrl файл русскоязычную фразу - ничего не выйдет, пока не отрегулировать значение поля language. Вернее выйдет что-нибудь вроде этого ->
Просмотр. Текст кода. Сомневаюсь, что Вы смогли что-нибудь прочесть в броузере.
Так вот, надо было указать язык. Делается это как в интернетовских url, т.е. для России - ru
Просмотр. Текст кода.
Приведенный код нормально сработал в случае CosmoPlayer, MS VRML Viewer, Cortona и не сработал в GLView! И еще, просмотрите код! Вы будете смеяться, но я не знаю, в какой кодировке написана русскоязычная фраза! :(, хотя она просматривается VRML броузерами. Я написал ее в Cosmowolrlds с указанием language=ru, но это ведь вовсе не CP-1251.
- size и spacing - задают размер шрифта и межстрочное расстояние
- style - может быть PLAIN, BOLD, ITALIC, BOLDITALIC. Это всем знакомые обычный, полужирный, курсив, полужирный курсив.
- leftToRight и topToBottom - в зависимости от значения horizontal задает направления написания текста. При horizontal TRUE и leftToRight FALSE текст напишется справа налево (для арабов что ли ;) ? ) . Аналогично по вертикали.
Теперь о том, почему использование Text+FontStyle мне кажется неудачным. А что в них хорошего? Всего 3 шрифта + (полужирность, курсив). Есть два более приятных варианта:
- использование текстуры. Напишите в Photoshope все что Вам вздумается, любым шрифтом, с любыми эффектами (emboss и т.д.) и налепите эту "листовку" на объект. Как это делается см в разделе "Текстуры"
- трехмерный текст. Просмотр. Ничего себе, правда? Удобнее всего такое делать в Internet Space Builder.
И в первом, и во втором случае никаких проблем с кодировкой, языком и т.д.!
Назад |
Содержание |
Вперед