Menu

Página Principal
Meu Trabalho
Swing
Opengl
JAVA
IUP/LED
Como fazer sua Homepage
Recursos
Programas

Programas

Para a avaliação das ferramentas em estudo, foram desenvolvidos uma série de programas. Estes têm a função de explorar os recursos de cada biblioteca ou sistema de interface e possibilitar uma análise comparativa.

OBS: Esta página demora a ser carregada devido ao grande número de imagens. Para ver uma imagem ampliada clique sobre ela.

Visualizador de Malhas BiDimensionais

Este programa foi elaborado como parte da disciplina de Computação Gráfica. O objetivo deste programa era o estudo da Linguagem de Especificação de Diálogos (LED) junto com o sistema IUP. Além disso, utilizou-se a biblioteca Canvas Draw (CD), também do TECGRAF, para a visualização de malhas bidimensionais de elementos finitos.

A especificação do trabalho pedia que fosse implementada a interface gráfica utilizando-se os recursos de IUP/LED como botões e menus (figura 5). O programa deveria permitir a leitura de arquivos de dados de elementos finitos no formato adotado no TECGRAF e no LMC denominado formato neutro (.nf). A malha pode ser desenhada de diversas maneiras: Aramada (Wire), Preenchida (Fill), Contorno (Boundary), Níveis de Renumeração (Level) e Resposta da Malha (Response). (figura 8)

A primeira é a visualização da malha aramada onde os pontos são ligados por retas (figura 5). Ainda dentro desta opção pode-se optar por mostrar os números originais (figura 6) e renumerados (figura 7) dos nós ou sem numeração (figura 5). A renumeração é devida a um método de diminuição de banda da matriz de rigidez da malha. O método utilizado foi o de Cuthill-McKee reverso (objeto do primeiro trabalho da disciplina).

O segundo modo de visualização é a malha preenchida. Nesta opção, os elementos da malha são preenchidos com uma cor específica de cada tipo de elemento (T3, Q4, T6 ou Q8) (figura 8). Esta opção também permite a visualização da numeração dos nós como descrita anteriormente.

Figura 5 - Malha Aramada

figura 6 - Malha Aramada com Numeração Original

figura 7 - Malha Aramada Renumerada e Menu de Numeração

figura 8 - Malha Preenchida e Menu de Visualização

A malha também pode ser visualizada pelo seu contorno (figura 9). Esta opção permite uma visão simples do objeto modelado, sem os elementos e nós.

figura 9 - Contorno da Malha

O método de Cuthill-McKee para diminuição da banda da matriz de rigidez impõe a definição de níveis de renumeração. Dentro de um critério definido, os nós são agrupados dentro destes níveis e isso é mostrado na visualização do níveis através de bandas (figura 10). É possível perceber a idéia dos níveis pelas regiões concêntricas representadas na figura 10.

figura 10 - Níveis de Renumeração

A última maneira de visualizar a malha é pela resposta do processamento em elementos finitos (figura 11). Esta resposta pode ser o nível de tensões ou deformações.

figura 11 - Resposta da Malha

Foram também implementadas funções para manipulação da imagem, como Zoom e Pan. Com isso, é possível analisar detalhes relevantes da malha. A figura 12 mostram um zoom da região que possivelmente apresenta os níveis mais altos de tensão por exemplo.

figura 12 - Exemplo de Zoom

A próxima figura mostra uma caixa de diálogo com os dados do autor e do trabalho.

figura 13 - Diálogo com Dados sobre o Trabalho

Visualizador de Malhas Tridimensionais

Este trabalho é uma extensão do Visualizador de Malhas Bidimensionais apresentado anteriormente. As funções e conceitos envolvidos são os mesmos sendo apenas estendidas para malhas tridimensionais. Neste programa a interface gráfica já estava implementada bem como as função de zoom, pan, rotação e translação. Pedia-se apenas para completar as funções de desenho. Para isto foi usada a biblioteca G3D, também do Tecgraf, que é igual à CD mas para desenhos tridimensionais. A seguir são apresentadas figuras mostrando a interface gráfica e exemplos de visualização de malhas tridimensionais nos diversos modos (iguais ao do programa bidimensional).

figura 14 - Malha Aramada e Menu Projeto

figura 15 - Malha sombreada e Menu de Visualização

figura 16 - Contorno da Malha e Menu de Projeção

figura 17 - Resposta da Malha

figura 18 - Níveis de Renumeração e Menu de Controle do Mouse

figura 19 - Diálogo com Dados sobre o Trabalho

Visualizador 3D

A idéia de se elaborar o visualizador 3D surgiu da dificuldade de observar o efeito de cada variável da OpenGL. No início do estudo da OpenGL (apresentado em relatório anterior), o valor de alguma variável era alterado, o programa recompilado e só então poderia ser visto o seu efeito na visualização. Neste programa procurou-se abranger todas as variáveis que pareceram relevantes e tornar o seu estudo interativo, ou seja, a interface do programa permite modificar o valor de cada parâmetro e observar o efeito imediatamente.

Um outro enfoque deste programa foi o estudo de uma versão da OpenGL para Java. A biblioteca Magician (foi escolhida entre diversas outras por apresentar a maior quantidade de recursos da OpenGL original. Uma das dificuldades foi a falta de documentação e, principalmente, de exemplos que pudessem ser analisados e utilizados no estudo. Até o momento está versão mostrou-se completa e atendeu plenamente às expectativas iniciais.

O Visualizador 3D também serviu como estudo da nova interface gráfica Swing. Alguns dos novos componentes usados foram: Painel com Guias (Tabbed Pane) , o menu com Checkbox e o painel com borda. (nos controles RGB). O Tabbed Panel permitiu uma grande economia de espaço de tela e uma melhor organização das funções. O menu com checkbox foi usado para possibilitar a escolha de apenas um sólido a ser visualizado. Já o painel com borda tem a função de melhorar a clareza da interface.

A guia Material (figura 20) permite alterar os parâmetros que definem o material do objeto. Estes parâmetros são:

  • Cor: define a cor do objeto quando não existe iluminação;
  • Color-Material: quando acionada, as componentes ambiente e difusa tornam-se iguais à variável Cor;
  • Ambiente: componentes RGB da componente ambiente do material;
  • Difusa: componentes RGB da componente difusa do material;
  • Especular: componentes RGB da componente especular do material;
  • Emissiva: componentes RGB da componente emissiva do material;
  • Brilho: define a intensidade do brilho do material.

Os valores das componentes RGB podem assumir valores entre 0 e 255. Isto difere da definição da OpenGL onde os valores estão entre 0 e 1 pois foi utilizada a definição RGB para hardware gráfico (entre 0 e 255).

Através da guia Luz (figura 21) é possível modificar os parâmetros de iluminação. Estes parâmetros são:

  • Ambiente: componentes RGB da componente ambiente da luz;
  • Difusa: componentes RGB da componente difusa da luz;
  • Especular: componentes RGB da componente especular da luz;
  • Direcional: define o ponto de luz como uma fonte direcional;
  • Posicional: define o ponto de luz como uma fonte posicional:
    • Abertura: ângulo de abertura do cone de luz;
    • Distância: distância da fonte luminosa ao centro do objeto.

figura 20 - Guia Material

figura 21 - Guia Luz

Na guia Projeção (figura 22) pode-se alternar entre a projeção Ortogonal e a Perspectiva. Na opção Perspectiva existe ainda o parâmetro de abertura da "câmera".

figura 22 - Guia Projeçã

Na guia Movimento (figura 23) estão os parâmetros que definem a rotação e translação do sólido e a rotação do ponto de luz em torno do sólido.

figura 23 - Guia Movimento

Além de alterar os parâmetros de visualização, o programa oferece um menu com uma lista com alguns sólidos pré-definidos (que são parte da biblioteca OpenGL) para visualização (figura 24). Entre as opções temos:

  • Cubo (figura 23);
  • Esfera (figura 20);
  • Cone (figura 24);
  • Toróide (figuras 21 e 25);
  • Octaedro;
  • Dodecaedro;
  • Icosaedro (figura 26) e
  • Chaleira (figura 22).

figura 24 - Menu Sólidos

figura 25 - Toróide

figura 26 - Icosaedro