• Nenhum resultado encontrado

Código VRML para representar o Modelo Digital de Terreno

CAPÍTULO 3 – METODOLOGIA

3.2 Especificação da arquitetura

3.2.1 Código VRML para representar o Modelo Digital de Terreno

O posicionamento e arquitetura da grade VRML são fundamentais na modelagem do MDT.

A grade VRML é posicionada na tela do plug-in e referenciada a um sistema de coordenadas com a origem centrada na tela do plug-in. Esta origem correspondente a x, y, z (0, 0, 0). O posicionamento da grade na origem do sistema central de tela do plug-in permite que as coordenadas do vértice superior esquerdo da grade coincidam exatamente na origem do sistema central de tela do plug-in. Dessa forma, as coordenadas de um objeto na grade tem uma origem comum (zero da tela e zero da grade). A Figura 28 mostra a grade centrada no sistema de coordenadas VRML fixo de tela do plug-in, e com x ey das coordenadas relativas da torre A. O canto superior esquerdo representa o ponto (0, 0, 0)

Fig. 28 – Representação esquemática do posicionamento da grade centrada na origem do sistema de coordenadas VRML.

Uma grade regular usada para testes construída através de uma matriz m por n (linhas por colunas) de 70 por 41, possui 2870 pontos (intersecções entre meridianos e paralelos da grade UTM extraídos da carta topográfica). Esta matriz é inserida no campo das alturas (na sintaxe VRML: heigth [ ]), através do nó ElevationGrid, que modela a grade armazenando alturas y (em VRML a abscissa y é perpendicular ao plano da grade).

O ponto de origem das coordenadas VRML da grade (coordenadas do canto superior esquerdo: 0,0,0) coincide com as coordenadas relativas do canto superior esquerdo do trecho vetorizado da carta (coordenadas 0,0,0).

As coordenadas tridimensionais do canto inferior direito da grade VRML (4100, 0, 7000) coincidem com a última coordenada da matriz

O código VRML de exemplo para modelar uma grade VRML é mostrado a seguir:

Transform {translation 0.0 0.0 0.0 children[

Shape {

appearance Appearance {

material Material {diffuseColor 0.5 1.0 0.5 }} geometry ElevationGrid { xDimension 70 zDimension 41 xSpacing 100 zSpacing 100 solid FALSE height [ ]

3.2.1.1 Uma nova abordagem sobre a representação da grade em VRML

A quantidade de pontos da grade é um fator limitante, quando se está utilizando o comando ElevationGrid podendo impedir a visualização do MDT. Este tipo de representação é a mais adequada para a modelagem, portanto, foi necessário criar e aplicar neste trabalho uma nova abordagem sobre a representação da grade em VRML. A esta técnica denominamos "dividir para conquistar". Dividindo a matriz da grade regular em matrizes de menor dimensão, ou seja, em blocos menores, desse modo permitiu-se o processamento destes dados.

No caso estudado, cada grade menor (sub-grade), é tratada como um objeto em VRML. As interpolações para visualizar o resultado são restritas a cada grade menor. Com isto, o número de operações envolvidas irá concentrar-se apenas em cada sub-grade. São também realizadas translações adequadas. O tamanho de cada sub-grade não deve ultrapassar a dimensão 100 por 100 unidades VRML. A

Figura 29 (a) mostra um esquema da solução encontrada para o problema da grade e a Figura 29 (b) o programa em VRML.

(a)

#VRML V2.0 utf8

Background { skyColor [ 0.0 0.5 0.5 ]}

#Grid no centro do sistema ortogonal x, y, z da tela #= 0,0,0 (vermelho)

Transform {translation 0.0 0.0 0.0 rotation 0.0 0.0 0.0 0.0 children[ Shape {

appearance Appearance {

material Material {diffuseColor 1.0 0.0 0.0 }} geometry ElevationGrid { xDimension 4 zDimension 4 xSpacing 1 zSpacing 1 solid FALSE height [5 10 10 10 5 10 10 10 5 10 10 10 5 10 10 10]}}]}

#Grid no centro do sistema ortogonal x, y, z da tela #= 0,0,0 (verde)

Transform {translation 3.0 0.0 0.0 rotation 0.0 0.0 0.0 0.0 children[ Shape {

appearance Appearance {

material Material {diffuseColor 0.0 1.0 0.0 }} geometry ElevationGrid { xDimension 4 zDimension 4 xSpacing 1 zSpacing 1 solid FALSE height [ 10 5 5 5 10 5 5 5 10 5 5 5 10 5 5 5]}}]}

#Grid no centro do sistema ortogonal x, y, z da tela #= 0,0,0 (magenta)

Transform {translation 0.0 0.0 3.0 rotation 0.0 0.0 0.0 0.0 children[ Shape {

appearance Appearance {

material Material {diffuseColor 1.0 0.0 1.0 }} geometry ElevationGrid { xDimension 4 zDimension 4 xSpacing 1 zSpacing 1 solid FALSE height [5 10 10 10 5 10 10 10 5 10 10 10 5 10 10]}}]}

#Grid no centro do sistema ortogonal x, y, z da tela #= 0,0,0 (ciano)

Transform {translation 3.0 0.0 3.0 rotation 0.0 0.0 0.0 0.0 children[ Shape {

appearance Appearance {

material Material {diffuseColor 0.0 1.0 1.0 }} geometry ElevationGrid { xDimension 4 zDimension 4 xSpacing 1 zSpacing 1 solid FALSE height [ 10 5 5 5 10 5 5 5 10 5 5 5 10 5 5 5]}}]}

Fig. 29 – "Dividir para conquistar". (a) sub-grades n por n e grade 4n por 4n. Exemplo em VRML com sub-grades 4 por 4 e grade 8 por 8.

(b) Código em VRML de (a). (b)

Fig. 30 - Exemplo de cinco grades reais de 70 por 41 com translações.

A Figura 30 mostra um exemplo onde a técnica da Figura 29 foi aplicada. Neste exemplo são exibidas na tela do plug-in cinco grades 70 por 41 de cores diferentes.

O nó ElevationGrid opera com grade regulares. A VRML possibilita muitas opções em dar realismo as cenas através do código e texturas. Estes recursos ligados à aparência dos objetos foram poupados para que não sobrecarregassem a modelagem.

A modelagem de grades irregulares (utilizadas para suavizar superfícies), pode causar degradação da fidelidade geométrica da representação gráfica do terreno. A superfície terrestre é diferente de uma superfície matemática utilizada para representá-la. Através dos recursos oferecidos por vários softwares pode-se aumentar resolução original da grade, criando uma superfície de pontos cujas coordenadas introduzidas na grade não concordam, de forma completa, com a verdade terrestre. A modelagem matemática através de interpoladores, refinando sem limites a malha, permite facilmente superar os limites de precisão dos dados.

É recomendável uma pesquisa especialmente voltada para definir que tipos de erros são cometidos nas interpolações. Respeitar os limites de precisão dos dados,

é um critério importante quando não se conhece a degradação causada por interpolação. A precisão dos dados de entrada depende da fidelidade e consistência dos mesmos: a interpolação depende da qualidade dos dados.

Uma outra opção de modelagem em VRML é recorrer à criação de novos nós além dos padronizados, usando a definição PROTO (derivada de protótipo).

A pesquisa desta dissertação também permite representar em um MDT construído a partir de carta topográfica terrenos com limites sinuosos, ou com o terreno orientado de forma diagonal em relação à grade da carta. A modelagem de terrenos de bordas sinuosas é resolvida através do método "dividir para conquistar".

Um MDT fornecido por restituição digital ou levantamento geodésico também é construído utilizando a metodologia desta dissertação.

Todas estas questões, portanto, tem solução empregando a técnica "dividir para conquistar". No lugar do usuário ficar restrito a grades retangulares e de baixa resolução economizando cálculo no processamento, é possível modelar a área de contorno irregular aplicando uma cobertura de grades ou uma metafórica "colcha de retalhos", completando o terreno com um sistema de pequenas grades. Este novo procedimento prevê translações adequadas no posicionamento relativo na construção das grades.

78

Documentos relacionados