Шаг 18 - Стиль шрифта, узел FontStyle

Узел FontStyle задает стиль шрифта для использования его в трехмерном тексте. Определен данный узел следующим образом:

FontStyle { 
	field MFString family       "SERIF"
	field SFBool   horizontal   TRUE
	field MFString justify      "BEGIN"
	field SFString language     ""
	field SFBool   leftToRight  TRUE
	field SFFloat  size         1.0
	field SFFloat  spacing      1.0
	field SFString style        "PLAIN"
	field SFBool   topToBottom  TRUE
}

Теперь давайте разберемся со всеми параметрами по порядку.

Первый параметр family содержит массив регистрозависимых названий семейств шрифтов в порядке предпочтения. Браузер просматривает этот массив и сравнивает все названия семейств с теми, которые он сам поддерживает. Если ни одно значение не совпадает с поддерживаемыми, то по умолчанию используется семейство "SERIF", которое должно поддерживаться всеми браузерами. Если значение параметра family пустое (""), то оно считается равным "SERIF". В качестве основных шрифтов из семейств используются следующие шрифты:

Параметр style задает стиль текста. Стиль текста, это регистрозависимое название одного из следующих типов начертания шрифта:

Высота шрифта задается параметром size, а расстояние между базовыми линиями строк задается с помощью вещественного коэффициента spacing. Обратите внимание, что полная высота строки равна результату умножения size и spacing. Значение spacing не может быть отрицательным.

18_1.gif (2057 b)

Параметр language задает язык текста. Код этого языка определяется в RFC 1766: Tags for the Identification of Languages. Для русского языка значение данного параметра равно "ru".

Оставшиеся параметры делают такие действия над текстом, что в двух строках не написать. Будем подробно разбираться по порядку.

Первый параметр horizontal задает направление текста. По умолчанию данный параметр равен TRUE и текст идет горизонтально, иначе при значении FALSE текст идет вертикально. Но будьте внимательны, текст не поворачивается на 90 градусов, а именно пишется вертикально, буква под буквой. Для поворотов предназначен другой узел. Смотрите рисунок:

18_2.gif (1261 b)

Параметр leftToRight предназначен для задания вертикального направления текста. По умолчанию он равен TRUE, что означает всем привычное направление текста слева-направо. Если же он равен FALSE, то текст пишется наоборот. Причем это не зеркальное отражение, а просто буквы следуют в противоположном порядке.

18_3.gif (995 b)

В случае, когда параметр horizontal равен FALSE, значение параметра leftToRight используется для отображения многострочного текста, смотрите:

18_4.gif (4377 b)

Параметр topToBottom задает вертикальное направление текста. В привычном нам режиме сверху-вниз он равен TRUE, при значении FALSE текст идет снизу-вверх.

18_5.gif (4561 b)

Параметр justify задает выравнивание текста относительно центра координат объекта и имеет следующие значения:

Данный параметр может иметь два значения для выравниваний относительно горизонта и вертикали. Первый параметр влияет на выравнивание относительно главного направления, задаваемого параметром horizontal (при horizontal=TRUE это ось X, иначе Y), а второе значение влияет на выравнивание относительно другого направления (при horizontal=TRUE это ось Y, иначе X). Смотрим рисунок:

18_6.gif (16999 b)

Эти четыре параметра horizontal, leftToRight, topToBottom, justify позволяют творить с текстом, что душе угодно, и в этом мы уже убедились. После того, как Вы сами их все попробуете, Вы поймете как все это работает.

Небольшой примерчик данного узла:

#VRML V2.0 utf8
Background {
	skyColor 0 0 0
}

Transform {
	children [
		Shape {
			geometry Text {
				fontStyle FontStyle{
					horizontal   FALSE
					topToBottom  TRUE
					justify ["MIDDLE","MIDDLE"]
					size 2
				}
				string ["Text","Text1","Text2"]
			}
		}
	]
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей.