7.1 Navegadores para VRML
7.2 Um Primeiro Programa em VRML
7.2.1 Estrutura Básica
7.2.2 Definindo Cubos
VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 1 - Exemplo de um Cubo
# ******************************************
Separator
{
Cube { height 0.5 width 3 depth 1 }
}
|
![]() |
7.2.3 Definindo Esferas
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 2 - Exemplo de uma Esfera
# ******************************************
Separator
{
Sphere { radius 2 }
}
|
![]() |
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 3 - Exemplo de um Cilindro
# ******************************************
Separator
{
Cylinder { radius 1 height 2 }
}
|
![]() |
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 4 - Exemplo de um Cone
# ******************************************
Separator
{
Cone { bottomRadius 1 height 2 }
}
|
![]() |
7.2.6 Definindo Polígonos
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 5 - Exemplo de polígonos
# ******************************************
Separator
{
Coordinate3 # Tabela de Vértices
{
point [ 0 10 0, # vértice 0
-5 0 5, # vértice 1
5 0 5, # vértice 2
5 0 -5, # vértice 3
-5 0 -5, # vértice 4
]
}
IndexedFaceSet # Tabela de Faces
{
coordIndex [
1, 2, 3, 4, -1, # Base
0, 1, 2, -1, # Frontal
0, 2, 3, -1, # Direita
0, 3, 4, -1, # Traseira
0, 4, 1, -1 # Esquerda
]
}
}
|
![]() |
VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 6 - Exemplo de TEXTURA
# ******************************************
Separator
{
Texture2
{
filename "parede.gif"
}
Separator
{
Cube {}
}
}
|
![]() |
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada e Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 7 - Exemplo de uso de Cor
# ******************************************
Separator
{
Material { diffuseColor 0 1 0 } # Cor Verde
Separator
{
Cube {}
}
}
|
![]() |
7.2.8 Transformações Geométricas sobre os Objetos
Até o momento apresentamos apenas objetos em sua posições originais. Em VRML, para mudar a posição ou orientação de um objeto aplica-se transformações. O comando que define uma transformação é o Transform { ... } dentro do qual é possível especificar, entre outras coisas, a rotação e a posição do objeto.
Para a posição há o comando translation tx ty tz, para a rotação há o comando rotation ex ey ez ang. Na translação os parametros tx ty tz definem a posição do objeto. Na rotação ex ey ez define o eixo de rotação e ang define o ângulo. Na figura 7.8, são exibidos dois cilindros com diferentes rotações e posições. Note que há um nível a mais de Separator {…} no código. Isto foi colocado pois alguns Browsers, como o WorldView, precisam de um bloco externo que inclua todos os objetos.
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 8 - Exemplo de Transf. geometrica
# ******************************************
Separator # Bloco externo necessário a alguns
{ # Browsers
Separator # Primeiro cilindro
{
Transform
{
translation -2 0 0 # Desloc. à esq.
rotation 1 0 0 1.7 # Rot. eixo X
}
# Vermelho
Material { diffuseColor 1 0 0 }
Cylinder {}
}
Separator # Segundo cilindro
{
Transform
{
translation 2 0 0 # Desloc. à dir.
rotation 0 0 1 -1.7 # Rot. eixo Z
}
# Verde
Material { diffuseColor 0 1 0 }
Cylinder {}
}
}
|
![]() |
7.2.9 "Links" e "Includes"
#VRML V1.0 ascii
# ******************************************
# "Uma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 9 - Exemplo de link
# ******************************************
WWWAnchor
{
# Nome do arquivo que será o destino do link
name "file:c:/teste2.wrl"
Separator
{
Transform
{
translation -5.0 0.0 0.0 # Desloca para esquerda
}
Cube { height 1 width 3 depth 3 }
}
}
|
#VRML V1.0 ascii
# ******************************************
# Üma Introdução à realidade Virtual"
# Congresso da SBC
# Jornada de Atualização em Informática
# Refice, PE
# Agosto, 1996
# ******************************************
# Programa 10 - Exemplo de include
# ******************************************
Separator # Bloco externo necessário a alguns Browsers
{
Separator
{
Transform
{
translation -7 0 0
rotation 1 0 0 -0.78
}
WWWInline { name "file:c:/piramide.wrl" }
}
Separator
{
Transform
{
rotation 1 0 0 0.78
translation 7 0 0
}
WWWInline { name "file:c:/doc/jai/piramide.wrl" }
}
}
|