Matemática e Computação
 

Mensagens
Não te abandones em lugares onde a luz da tua harmonia não esteja presente.

 


7 - Criação de Links, Inserção de arquivos, Viewpoint, Luzes no ambiente VRML, Background, Fog e NavigationInfo 

7.1 - Criação de Links

Em VRML, qualquer objeto pode ser um link para uma outra página. Para tanto basta colocar o bloco Anchor. Anchor cria um hiperlink com páginas HTML, imagens, etc.

Dentro do bloco Anchor coloque a URL que terá o destino do link.

Quando você clica em um objeto com o nó Anchor é aberta uma nova URL que pode ser, uma página html ou um mundo VRML.

Anchor também pode habilitar um “Ponto de Vista”.

Quando colocamos um objeto sobre um nó Anchor a URL correspondente é exibida.

       Anchor {
              children [
                     Transform {
                            translation 0 0 0
                            children [
                                   Shape {
                                          appearance Appearance {
                                                 material Material {
                                                        diffuseColor 1.0 0.0 0.0
                                                 }
                                          }
                                          geometry Box { }
                                   }
                            ]
                     }
              ]
             
url ["C:/VRML/Anchor/Anchor02.wrl"
===}

Exemplo 72: Exemplo do nó Anchor (primeiro exemplo)

Anchor {
     children [
          Transform {
               translation 0 0 0
               children [
                    Shape {
                         appearance Appearance {
                              material Material {
                                   diffuseColor 1.0 0.0 0.0
                              }
                         }
                         geometry Box { }
                    }
               ]
          }
     ]
     url ["Anchor02.wrl"]
}

Exemplo 73: Exemplo do nó Anchor (segundo exemplo)

Anchor {
     children [
          DEF Bola Transform {
               children Shape {
                    appearance Appearance {
                         material Material {
                              diffuseColor 1 0 0
                         }
                    }
                    geometry Sphere {
                         radius 2
                    }
               }
          }
          DEF TS TimeSensor {
               loop TRUE
               cycleInterval 10
          }
          DEF SI PositionInterpolator {
               key[ 0 .25 .50 0.75 1 ]
               keyValue [ 1 1 1 2 1 1 3 1 1 2 1 1 1 1 1 ]
          }
     ]
     url ["Anchor03.wrl"]
}
ROUTE TS.fraction_changed TO SI.set_fraction
ROUTE SI.value_changed TO Bola.set_scale

Exemplo 74: Exemplo do nó Anchor (terceiro exemplo)

Transform {
     children [
          DEF Dado Shape {
               geometry Box {
                    size 3.01 3.01 3.01
               }
          }
          DEF Dado1 Shape {
               appearance Appearance {
                    texture ImageTexture {
                         url "Dado01.jpg"
                    }
               }
               geometry Box {
                    size 3 3 3
               }
          }
          DEF Dado2 Shape {
               appearance Appearance {
                    texture ImageTexture {
                         url "Dado02.jpg"
                    }
               }
               geometry Box {
                    size 3 3 3
               }
          }
          DEF Dado3 Shape {
               appearance Appearance {
                    texture ImageTexture {
                         url "Dado03.jpg"
                    }
               }
               geometry Box {
                    size 3 3 3
               }
          }
          DEF Dado4 Shape {
               appearance Appearance {
                    texture ImageTexture {
                         url "Dado04.jpg"
                    }
               }
               geometry Box {
                    size 3 3 3
               }
          }
          DEF Dado5 Shape {
               appearance Appearance {
                    texture ImageTexture {
                         url "Dado05.jpg"
                    }
               }
               geometry Box {
                    size 3 3 3
               }
          }
          DEF Dado6 Shape {
               appearance Appearance {
                    texture ImageTexture {
                         url "Dado06.jpg"
                    }
               }
               geometry Box {
                    size 3 3 3
               }
          }
     ]
}
Anchor {
     children [
          Transform {
               translation 0.02 0 0
               children USE Dado1
          }
     ]
     url "#PVista2"
}
Anchor {
     children [
          Transform {
               translation 0 0.02 0
               children USE Dado2
          }
     ]
     url "#PVista3"
}
Anchor {
     children [
          Transform {
               translation 0 0 0.02
               children USE Dado3
          }
     ]
     url "#PVista4"
}
Anchor {
     children [
          Transform {
               translation -0.02 0 0
               children USE Dado4
          }
     ]
     url "#PVista5"
}
Anchor {
     children [
          Transform {
               translation 0 -0.02 0
               children USE Dado5
          }
     ]
     url "#PVista6"
}
Anchor {
     children [
          Transform {
               translation 0 0 -0.02
               children USE Dado6
          }
     ]
     url "#PVista1"
}

DEF PVista1 Viewpoint{
     position 10 0 0
     orientation 0 1 0 1.5708
}
DEF PVista2 Viewpoint{
     position 0 10 0
     orientation 1 0 0 -1.5708
}
DEF PVista3 Viewpoint{
     position 0 0 10
     # orientation 1 0 0 -1.5708
}
DEF PVista4 Viewpoint{
     position -10 0 0
     orientation 0 1 0 -1.5708
}
DEF PVista5 Viewpoint{
     position 0 -10 0
     orientation 1 0 0 1.5708
}
DEF PVista6 Viewpoint{
     position 0 0 -10
     orientation 0 1 0 3.1416
}

7.2 - Inserção de arquivos.

Para incluir objetos já definidos em outros arquivos usa-se o comando Inline seguido da URL do arquivo.

Exemplo 75: Inserção dos arquivos Box.wrl e Cilindro.wrl

       Inline {
              url "C:/VRML/Box.wrl"
       }
       Transform {
              translation 0 0 2
              rotation 0 0 1 0.7853
              scale 1 1 2
              children [
                     Inline {
                            url "C:/VRML/Box.wrl"
                     }
              ]
       }

Exemplo 76: Inserção dos arquivos Box.wrl e Cilindro.wrl

       Transform {
              translation -1 0.5 0
              rotation 0 0 1 0.7853       # eixo e ângulo (em radianos) (1.57 = 90 graus)
              scale 1 1 0.5
              children [                # As transformações pode ter um ou mais "filhos"
                     Inline {
                            url ["C:/MeuSite/Box.wrl"]
                     }
              ]
       }
       Transform {
              translation 2 0 0
              scale 1 2 1
              rotation 0 1 0 0.7853          # eixo e ângulo (em radianos)
              children [
                     Inline {
                            url ["C:/MeuSite/Cilindro.wrl"]
                     }
              ]
       }

7.3 - Ponto de vista ( Viewpoint )

Em VRML 2.0 é possível posicionar o observador em alguma posição específica do espaço através do comando Viewpoint, que possui os campos:

position x y z: campo que define a posição do observador;

orientation x y z ang: que define o eixo e o ângulo de rotação do observador;

fieldOfView ang: que define o ângulo de visão em radianos;

description " string": que define o nome deste ponto de visão.

Exemplo 77: Veja a seguir exemplos do Viewpoint

Viewpoint {
       position 0 3 15
       orientation 0 0 1 0
       fieldOfView 0.785398        # 90 graus em radianos
       description "Ver de cima"
}                                                   # fim do Viewpoint
Viewpoint {
       position 0 -3 15
       orientation 0 0 1 0
       fieldOfView 0.785398 # 90 graus em radianos
       description "Ver de baixo"
} # fim do Viewpoint
Viewpoint {
       position 3 0 15
       orientation 0 0 1 0
       fieldOfView 0.785398 # 90 graus em radianos
       description "Ver de lado"
} # fim do Viewpoint
Viewpoint {
       position -3 0 15
       orientation 0 0 1 0
       fieldOfView 0.785398 # 90 graus em radianos
       description "Ver de lado"
} # fim do Viewpoint
Shape {
       appearance Appearance { # define a aparência do Shape
              material Material {
                     diffuseColor 1.0 1.0 0.0 # r g b
              }
       }
       geometry Box { }
} # fim do shape

 

Exemplo 78: Veja a seguir exemplos do Viewpoint

Viewpoint {
       position 0 0 10
       orientation 0 0 1 0
       fieldOfView 0.785398        # 90 graus em radianos
       description "Ver de cima"
}                                                   # fim do Viewpoint
Viewpoint {
       position -10 0 0
       orientation 0 1 0 -1.5708
       fieldOfView 0.785398 # 90 graus em radianos
       description "Ver de baixo"
} # fim do Viewpoint
Viewpoint {
       position 0 10 0
       orientation 1 0 0 -1.5708
       fieldOfView 0.785398 # 90 graus em radianos
       description "Ver de lado"
} # fim do Viewpoint
Viewpoint {
       position 10 0 0
       orientation 0 1 0 1.5708
       fieldOfView 0.785398 # 90 graus em radianos
       description "Ver de lado"
} # fim do Viewpoint
Shape {
       appearance Appearance { # define a aparência do Shape
              material Material {
                     diffuseColor 1.0 1.0 0.0 # r g b
              }
       }
       geometry Box { size 1 2 3 }
} # fim do shape
Shape {
       appearance Appearance { # define a aparência do Shape
              material Material {
                     diffuseColor 0.0 1.0 0.0 # r g b
              }
       }
       geometry Cone {
              bottomRadius 2
              height 3
       }
} # fim do shape