Introdução à VRML 2.0
(Profa. Isabel Harb Manssour)

[Anterior]  [Próxima]  [Principal]

 

4. Construindo Shapes de Texto

Através do nó Text, pode-se adicionar shapes de texto no "mundo" VRML. Para cada texto, pode-se especificar uma lista de strings com seus respectivos tamanhos. E usando o nó FontStyle, pode-se controlar o tipo de fonte, seu estilo, tamanho, espaçamento, etc.

Assim como os nós Box, Sphere, etc. são usados para especificar a geometria dos shapes construídos através do nó Shape, o nó Text é usado para criar a geometria de textos no espaço. Os campos do nó Text permitem especificar os caracteres que devem ser construídos e os atributos que controlam como cada string é construído. Neste momento torna-se interessante comentar que, além dos nós shape e geometria, VRML suporta uma variedade de nós property que encapsulam settings que podem ser usados várias vezes para controlar como os nós são construídos. No caso de textos, o nó property é o FontStyle.

O nó Text, que cria um texto e pode ser usado como o valor do campo geometry no nó Shape, tem a seguinte sintaxe:

Text{
	string		[ ]	# MFString
	length		[ ]	# MFFloat
	maxExtent	0.0	# SFFloat
	fontStyle	NULL	# SFNode
}

O valor do campo string especifica uma ou mais linhas de texto que serão exibidas. Cada linha ou coluna de texto aparece entre aspas e separada por vírgula, entre colchetes. O valor default para este campo é uma lista vazia de strings. O nó Text cria caracteres "planos", com a profundidade Z = 0.0. Por default, os caracteres são colocados lado a lado, ao longo do eixo X da esquerda para a direita. Linhas de strings consecutivos são colocadas uma embaixo da outra, descendo no eixo Y. Estes valores default podem ser trocados usando campos do nó FontStyle que são especificados como valores do campo fontStyle.

O campo length especifica o tamanho desejado, em unidades VRML, de cada linha de texto. Para respeitar este tamanho, linhas ou colunas de texto são comprimidas ou expandidas através da alteração do tamanho do caracter ou do espaço entre os caracteres. O valor 0.0 especifica que o texto será escrito no seu tamanho natural, sem comprimir ou expandir. Cada linha de texto tem seu próprio tamanho através da inclusão de múltiplos valores de length entre colchetes e separados por vírgula.

Já o valor do campo maxExtent especifica o tamanho máximo permitido, em unidades VRML, de qualquer linha ou coluna de texto, sendo que este valor deve maior ou igual a 0.0. Neste caso, linhas ou colunas mais longas do que a sua extensão máxima são comprimidas através da redução do tamanho ou espaçamento dos caracteres. Linhas ou colunas mais curtas não são afetadas. O valor default para este campo é 0.0, que indica que não há limite para ser usado.

As características que definem a aparência de um texto criado com o nó Text são especificadas através do valor do campo fontStyle. Tipicamente, o valor deste campo é o nó FontStyle, e o valor default NULL indica que será usado o estilo de fonte default, que instrui o nó Text a exibir o texto alinhado à esquerda, fonte serif, tamanho 1.0 unidade de altura, espaçamento entre linhas de 1.0 unidade, da esquerda para a direita horizontalmente e de cima para baixo verticalmente.

A seguir é apresentado um exemplo da utilização do nó Text com sua respectiva visualização na figura 4.1.

#VRML V2.0 utf8  
# Exemplo de utilização do nó Text
Shape {
	appearance Appearance {
		material Material {
			diffuseColor 0.0 0.0 0.8
                }
	}
	geometry Text {
		string [ "Linha Um", "Linha Dois" ]
	}
}

Figura 4.1 – Exemplo da utilização do nó Text

 

O nó FontStyle, que controla as características que definem a aparência do texto criado através do nó Text, geralmente é usado como valor do campo fontStyle. Sua sintaxe é:

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

O significado dos campos é o seguinte:

  • family: especifica qual dos padrões de fonte VRML será usado, SERIF (semelhante à Times Roman) SANS (semelhante à Helvetica) ou TYPEWRITER (semelhante à Courier). O valor default, que também pode ser representado por "", é SERIF.

  • style: indica o estilo de texto que será usado, PLAIN (default, plano/liso), BOLD (negrito), ITALIC (itálico) ou BOLDITALIC (negrito e itálico).

  • size: determina a altura do caracter medida em unidades VRML (default=1.0).

  • spacing: especifica o espaçamento de linha vertical em unidades VRML.

  • horizontal: quando o valor é TRUE (default), cada string do campo string do nó Text constrói uma linha horizontal de texto; quando é FALSE, é construída uma coluna vertical.

  • leftToRight e topToBottom: são usados em combinação com horizontal. Para um texto horizontal, se leftToRight for TRUE, caracteres consecutivos são colocados lado a lado da esquerda para a direita, se for FALSE, caracteres consecutivos são colocados da direita para a esquerda ao longo do eixo X negativo. Da mesma forma, o valor do campo topToBottom especifica como strings consecutivos são colocados ao longo da direção vertical (TRUE, um embaixo do outro, FALSE, um em cima do outro). Para um texto vertical, os efeitos destes campos são análogos. Se topToBottom é TRUE, os caracteres são colocados um embaixo do outro, se é FALSE, são colocados um cima do outro. Se leftToRight é TRUE, strings são colocados lado a lado da esquerda para a direita, se é FALSE, são colocados da direita para a esquerda. Os valores default para estes campos são TRUE.

  • justify: determina a maneira na qual o bloco de texto é posicionado em relação aos eixos X e Y (centralizado, à direita ou à esquerda dos eixos). O valor do campo, que consiste numa lista de uma ou duas seleções, pode ser: FIRST, BEGIN (default), MIDDLE e END.

  • language: valores para este campo baseiam-se em especificações locais esboçadas em vários padrões internacionais. Cada valor de campo contém o language code requerido seguido por um underscore opcional e um territory code. Exemplos de valores válidos são: en (Inglês), en_US (Inglês - Estados Unidos), de (Alemão) e jp (Japonês).

O exemplo a seguir é apresentado ilustra a utilização dos nós descritos (figura 4.2).

#VRML V2.0 utf8  
# Exemplo de utilização do nó Text

Group {
    children [
	Shape {
		appearance DEF White Appearance {
			material Material { }
		}
		geometry Text {
			string "First"
			fontStyle FontStyle {
				family "SERIF"
				style "ITALIC"
				justify "END"
				size 1.0
			}
		}
	},
	Shape {
		appearance USE White
		geometry Text {
			string "Second"
			fontStyle FontStyle {
				family "SANS"
				style "BOLD"
				justify "BEGIN"
				size 1.0
			}
		}	
	}
    ]
}

Figura 4.2 – Dois nós Text com diferentes formatações

 

 ../Imagens/EMBAN15.GIF (1469 bytes)

../Imagens/E-MAIL.JPG (3237 bytes) Comentários, dúvidas, sugestões, envie um mail para [email protected]

../Imagens/EMBAN15.GIF (1469 bytes)


[Anterior]  [Próxima]  [Principal]

Última alteração em 27 de julho de 2000.