Modificando os tamanhos
Autor/fonte: Márcio Serrolli Pinho e Cláudio Kirner
Tweet
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!
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!
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:
Quinta, 23 de Maio de 2013
Área restrita
Leitura recomendada
Cloud Computing - Computação em Nuvem - Uma Abordagem Prática
Últimas publicações
- Microsoft pode estar "espionando" suas mensagens no Skype
- Brasil tem mais de 100 milhões de acessos à internet em banda larga
- Vírus pelo Skype já afetou 80 mil pessoas na América Latina
- Setor de telecomunicações vai receber mais recursos para a melhoria da internet
- Lynx - Browser via terminal no GNU/Linux
Top 5 membros
- dddweb213 pts
- andersonop207 pts
- Jotah197 pts
- fbinasco165 pts
- fredbcn117 pts
Últimos membros cadastrados
- 96049886em 23/05
- GabsMullerem 22/05
- igorabbem 20/05





