Modificando os tamanhos


Autor/fonte: Márcio Serrolli Pinho e Cláudio Kirner



Digg del.icio.us

As primitivas gráficas apresentadas acima têm uma enorme flexibilidade (caso contrário estaríamos lidando com uma linguagem muito pouco expressiva). Para utilizar essa flexibilidade, é necessário introduzir modificadores à declaração dos objetos.

Cada objeto possui seus próprios modificadores, em função da sua geometria particular. As caixas têm largura, profundidade e altura, os cones têm raio da base e altura, e assim por diante. Na próxima tabela as principais propriedades de cada uma das primitivas geométricas são discriminadas e, a seguir, ilustradas.

Modificadores das primitivas geométricas (o primeiro número é quanto ao R, o segundo número é quanto ao G e o terceiro número é quanto ao B):

. Box - Modificador: size (tipo: real);
. Cone - Modificador: bottomRadius (tipo: real); height (tipo: real); side (tipo: lógico); bottom (tipo: lógico);
. Cylinder - Modificador: radius (tipo: real); height (tipo: real); top (tipo: lógico); bottom (tipo: lógico); side (tipo: lógico);
. Sphere - Modificador: radius (tipo: real).

Os modificadores de tipo real admitem valores positivos, enquanto os de tipo lógico recebem ou o valor TRUE ou o valor FALSE.

A fim de construir exemplos ilustrativos com os conhecimentos aprendidos, é conveniente dizer neste ponto que mais de uma primitiva geométrica (com as suas características e peculiaridades) pode ser declarada no mesmo arquivo. Os seguintes exemplos ilustram os modificadores utilizando esta possibilidade de definir múltiplas primitivas, e o conhecimento já aprendido de definição de cores.

sphere3.wrl:

#VRML V2.0 utf8
Shape {geometry Sphere{}}
Shape{
appearance Appearance {
material Material {
diffuseColor 1 1 0
transparency 0.4
}
}
geometry Sphere{ radius 2 }
}

No exemplo acima duas esferas foram construídas e sobrepostas. A primeira é a esfera default, sem modificação nenhuma, enquanto a segunda tem raio de duas unidades ("metros" daqui em diante), cor amarela e 40% de transparência. Observando o resultado, qual é o raio (aproximado) da esfera default? Por que foi empregada a propriedade de transparência para a segunda esfera e não para a primeira?

O seguinte exemplo ilustra o uso das variáveis lógicas, neste caso quando aplicadas à modificação geométrica de um cilindro. A esfera que o acompanha serve para responder à pergunta qual o tamanho padrão dos cilindros?

cylinder3.wrl:

#VRML V2.0 utf8
Shape {
appearance Appearance {
material Material {
diffuseColor .6 .6 .6
}
}
geometry Sphere{}
}
Shape {
appearance Appearance {
material Material {
diffuseColor 1 0 1
}
}
geometry Cylinder{side FALSE}
}

Por último, será ilustrada a expressividade das caixas em VRML em relação à possibilidade de modificar os tamanhos.

box2.wrl:

#VRML V2.0 utf8
Shape {
appearance Appearance {
material Material {diffuseColor 1 0 0 }}
geometry Box {size 10 1 1}
}
Shape {
appearance Appearance {
material Material {diffuseColor 0 1 0}}
geometry Box {size 1 10 1}
}
Shape {
appearance Appearance {
material Material {diffuseColor 0 0 1 }}
geometry Box {size 1 1 10}
}

Deste último exemplo o caro leitor ou leitora deverá ser capaz de concluir qual é a disposição padrão dos eixos nos mundos VRML. Para tanto, verifique que a caixa vermelha tem a sua primeira coordenada (x) maior do que as outras duas, que a verde possui a segunda coordenada (y) dez vezes maior do que as outras duas, e que a caixa azul é a que tem a terceira coordenada (z) hipertrofiada. Desenhe um mapa mental, que será de extrema utilidade para a compreensão das transformações geométricas de objetos.

A seguir é proposto um exercício para treinar o uso simultâneo dos conceitos de cores e de tamanhos aprendidos até este ponto... mas é melhor colocar óculos escuros antes de carregá-lo!




Enviado por xKuRt em 26/09/2006 às 14:00


Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Sábado, 22 de Novembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Use a Cabeça! Redes de Computadores


Capa do livro
Domain-Driven Design - Atacando as Complexidades no Coração do Software


Capa do livro
Sun Certified Java Programmer - Guia do Exame SCJP





Hostnet

IMD