CAPÍTULO VII TRABALHO INTERFACE DO AMBIENTE DE “Os gráficos feitos por computador atingiram actualmente um estado de elaboração que permitem importantes e novos tipos de experiências de aprendizagem na arte das ciências, (...). Há indivíduos, muitos deles extremamente dotados de excelentes capacidades de análise, que têm grandes dificuldades de perceber e imaginar relações espaciais, particularmente a geometria tridimensional. ” Carl Sagan – “Os Dragões do Éden” 7.1 INTRODUÇÃO A criação, alteração e visualização dos objectos geométricos é a consubstanciação do trabalho desenvolvido neste projecto. Foi, pois, implementada uma interface com base nas bibliotecas OpenGL, GLUT e GLUI. Todos aspectos relativos à criação alteração e visualização dos modelos geométricos 3D serão descritos e ilustrados na sequência deste capítulo. 7.2 INTERFACE A interface da aplicação MG3D é composta por 4 secções: 1. Painel integrado na janela principal da aplicação construída com base na biblioteca GLUI. 2. Uma janela flutuante associada a janela principal responsável pelas operações de translação, rotação e homotetias sobre o objecto. 3. Janela de representação gráfica dos objectos. 4. Consola que é usada para mostrar dados relacionados com o objecto. Interface1: Painel criado com base na biblioteca Glui. Este painel disponibiliza as operações de criação, alteração e remoção de componentes do sólido (Fig.44). Fig.44 – Interface 1. Interface2: Janela retirada do exemplo 5 que vêm disponível na versão glui_v2_1_beta. Esta janela permite efectuar operações de rotação, translação e homotetias sobre o objecto (Fig.45). Fig.45- Interface 2. Interface3: Ecrã de representação dos objectos. Está integrada na janela principal da aplicação (Fig.46). Fig.46 - Interface3. Interface4: Consola que permite controlar a lista de vértices, arestas e faces e as relações de incidências e adjacências. Muito importante durante o desenvolvimento do projecto pois permitia verificar se o sólido estava a ser manipulado correctamente (Fig.47). Fig.47- Interface 4. 7.3 UTILIZAÇÃO DO AMBIENTE DE TRABALHO Nesta secção é apresentado um exemplo de utilização do ambiente de trabalho. O objectivo é mostrar algumas das funcionalidades da aplicação MG3. O primeiro passo é inicializar o modelo através da criação de um vértice inicial. Para efectuar este procedimento basta escolher as coordenadas do vértice e pressionar o Butão New como podemos ver na (Fig. 48). Como podemos ver na (Fig.48) os butões Line, Hole e Del Sub estão desactivados, e isto acontece pois não é permitido criar linhas se não existir qualquer vértice. Também não faz sentido remover o sólido sem ele se quer existir. A aplicação do Butão Hole também requer no mínimo dois vértices para estar activado. Fig.48- Inicialização do módelo. De acordo com a metodologia anterior foi criado um vértice inicial de coordenadas (1.0,1.0,1.0). Os butoes Line e Del Sub são activados, por sua vez o Butão que permite a inicialização de um novo sólido é desactivado visto que a aplicação só representa um sólido de cada vez(Fig.49). Fig.49 - Activação de butões. O procedimento para criar linhas a partir de um vértice seleccionado. Os passos necessários para a criação de linhas são apresentados em baixo e ilustrados na (Fig.50). 1ºPasso – Activar modo de selecção pressionado o Butão direito do rato. 2ºPasso – Escolher a opção para seleccionar vértices. 3ºPasso – Seleccionar vértice. 4ºPasso – Escolher coordenadas para o novo vértice. 5ºPasso – Traçar linha, pressionado o Butão Line. Fig.50 - Criar linhas. O mecanismo para criar faces é um processo sequencial. A criação de uma sequência de aresta é em quase tudo semelhante ao descrito anteriormente com a ligeira particularidade de ser necessário escolher o método pelo qual queremos iniciar a construção da face. Neste caso o método escolhido é o init:vertex. Como podemos ver na (Fig.51). Fig.51 –Opção para criar faces. Este é o procedimento para criar faces a partir de um vértice seleccionado. É necessário seleccionar o vértice inicial para construir a primeira aresta da sequência da face, as restantes arestas serão sempre construídas com base no novo vértice e no vértice anterior. Os passo para efectuar esse procedimento são descritos em baixo e na (Fig.52). 1ºPasso – Activar modo de selecção pressionando o Butão direito do rato. 2ºPasso - Escolher a opção para seleccionar vértices. 3ºPasso – Seleccionar vértice. 4ºPasso – Escolher coordenadas para o novo vértice. 5ºPasso – Traçar linha, pressionado o Butão Line. 6ºPasso – Repetir passos 4 e 5 até pretendermos fechar a sequência de arestas. 7ºPasso selecção – Desactivar pressionado modo o de Butão esquerdo do rato. 8ºPasso – Fechar face, pressionado o Butão fechar face. Fig.52 – Passos para criar faces. Criar faces a partir de uma aresta é em quase tudo semelhante ao descrito anteriomente, a única diference reside nos passos 2 e 3. No passo 2 é escolhida a opção para seleccionar arestas em vez de vértices e consequentemente no passo 3 é seleccionada uma aresta. Para o funcionamento deste método é necessário existir pelo menos uma aresta. (Fig.53). Fig.53 –Opção para criar faces a partir de um vértice. Este método permite um fazer a expanção de faces a partir de uma face seleccionada. Sendo assim este processo permite criar objectos mais complexos e mais rapidamente do que construir o objecto face a face. Os passo que se seguem permitem construir objectos do género apresentado na (Fig.54). 1ºPasso– Activar modo de selecção pressionado o Butão direito do rato. 2ºPasso – Escolher a opção para seleccionar faces. 3ºPasso – Seleccionar face. 4ºPasso – Desactivar mecanismo para criação de faces. 5ºPasso – Escolher comprimento da normal a face. 6ºPasso selecção – Desactivar pressionado modo o de Butão esquerdo do rato. 8ºPasso – Fazer extrude da face, pressionado o Butão Extrude. Fig.54 –Opção para criar faces a partir de uma face. Atráves da selecção de apenas uma aresta é possível eliminar o conjunto de faces incidentes a essa mesma aresta. È necessário a opção Wirefame Painel Propriedades) para possibilitar a selecção da aresta que se pretende eliminar, a operação de eliminação foi efectuada sobre o objecto apresentado na (Fig.54) e o consequente resultado é apresentado na (Fig.55). Os passos a seguir para efectuar este procedimento são apresentados na sequência do texto. 1ºPasso – Activar modo de selecção pressionado o Butão direito do rato. 2ºPasso – Escolher a opção para seleccionar arestas. 3ºPasso – Seleccionar aresta. 4ºPasso – Desactivar mecanismo para criação de faces. 5ºPasso – Desactivar modo de selecção pressionado o Butão esquerdo do rato. 6ºPasso – Apagar aresta e faces incidentes, pressionado o Butão KEF. Fig.55 – Opção para remover faces a partir de uma aresta. Processo de eleminação um vértice e a sua respectiva aresta incidente. Neste caso pretendemos remover um vértice e uma aresta que não pertence a qualquer face (Fig.56). Fig.56 – Remover aresta removendo um vértice. Ao objecto representado na (Fig.56) removemos um vértice e uma aresta. O resultado de tal aplicação é ilustrado na (Fig.57). Os passos icenssiais para o sucesso da operação são descritos a seguir e na sequência do texto . 1ºPasso – Activar modo de selecção pressionado o Butão direito do rato. 2ºPasso – Escolher a opção para seleccionar vértices. 3ºPasso – Seleccionar vértice. 4ºPasso – Desactivar mecanismo para criação de faces se estiver activado. 5ºPasso – Desactivar modo de selecção pressionado o Butão esquerdo do rato. 6ºPasso – Apagar vértice e aresta incidente, pressionado o Butão KEV. Fig.57 – Passo para remover aresta removendo um vértice. Processo que permite criar uma aresta entre dois vértices. Os dois pontos são seleccionados com o auxílio do rato e do teclado. A tecla Ctrl quando pressionado juntamente com o Butão direito do rato permite armazenar o identificador dos dois vértices seleccionados, de modo a dar a possibilidade de criar uma aresta que una esses dois vértices. Como podemos ver na (Fig.58) foi criado uma género de buraco no objecto. Esta operação foi criada mais ou menos com esse intuito, visto não terem sido desenvolvidos operadores de Euler específicos para essa função. A seguir são descritos os procedimentos necessários para efectuar este tipo de operação. Fig.58 – Criar linhas entre dois vértices . 1ºPasso – Activar modo de selecção pressionado o Butão direito do rato. 2ºPasso – Escolher a opção para seleccionar vértices. 3ºPasso – Seleccionar os dois vértices com a ajuda da tecla CTRL. 4ºPasso – Desactivar mecanismo para criação de faces se estiver activado. 5ºPasso – Traçar linha, pressionado o Butão Line. O Processo que permite destruir o sólido. As listas de vértices, arestas e faces são totalmente removidas. Desta forma o ambiente de trabalho fica preparado novamente para a construção de um novo objecto. Como podemos ver na (Fig.59) o Butão NEW relativo a criação do esqueleto inicial do sólido está de novo activado. Se repararmos também no canto inferior direito da (Fig.59). A lista de arestas, vértices e faces encontra-se vazia, ou seja o objecto que estávamos a manipular foi completamente removido. O processo de construção do objecto poderia recomeçar novamente a partir desta etapa. A seguir a (fig.59) são descritos os passos relativos a esta operação. Fig.59 – Remover sólido . 1ºPasso – Desactivar modo de selecção se estiver activado pressionado o Butão direito do rato. 2ºPasso – Destruir o sólido, pressionado o Butão Del Sub. 7.4 CONCLUSÃO Todos os mecanismos de criação, alteração e remoção sobre o sólido e a sua correspondente utilização foram explicados e ilustrados. O modo de utilização é bastante simples mas não é muito intuitivo. Alguns aspectos poderiam ter sido melhorados. A mudança de cor dos objectos seleccionados teria sido uma mais valia para uma melhor apresentação da aplicação. Os efeitos de luz e iluminação sobre as faces não surtiram o efeito pretendido. Penso que estes pequenos problemas que não eram de forma alguma os mais difíceis de resolver, poderiam ter sido ultrapassados com um pouco mais de tempo, o que valorizava um pouco mais o ambiente gráfico da aplicação.