desenvolvimento de filmes sobre fenomenos da fisica quimica e matematica

6
DESENVOLVIMENTO DE FILMES SOBRE FENÔ MENOS DA FÍ SICA, QUÍ MICA E MATEMÁ TICA BASEADO EM UM VISUALIZADOR 3D Lú cio Cé zar S. Rebouç as (IC) a , José Silvé rio E. Germano b a Divisã o de Ciê ncia da Computaç ã o, ITA, CTA, 12228-900, Sã o José dos Campos, SP, Brasil b IEFF, Departamento de Fí sica, ITA, CTA, 12228-900, Sã o José dos Campos, SP, Brasil Neste trabalho implementamos uma nova versã o do programa RhindGL, um visualizador de fenômenos fí sicos feito em C++ para Windows 95/98 criado em uma iniciaçã o cientí fica anterior, acrescentando-lhe novas funcionalidades, tais como a visualizaçã o de molé culas quí micas em 3 dimensõ es, o plot de funçõ es da forma z = f(x, y) e a criaçã o de arquivos em formato de ví deo a partir da captura de telas das possí veis simulaçõ es. The goal of this work is a implementation of a new version of RhindGL, a physical phenomena software vizualization in C++ for Windows 95/98 created in a previous scientific iniciation, increasing it new functionalities, like 3 dimensional chemical molecules visualization, vizualization of z = f(x, y) mathematical functions and the possibility of construction of files in video format using screens captured from the simulations in RhindGL. Keywords: OpenGL; GLUT; MFC; simulaçã o 3D; RhindGL; PDB; AVI 1. INTRODUÇÃ O Com o rá pido crescimento que a informá tica tem tido nos ú ltimos anos, uma á rea em especial, denominada computaç ã o grá fica, tem se tornado uma grande aliada em vá rios ramos do conhecimento. Alé m das aplicações convencionais em á reas da engenharia, tais como: construç ã o de protótipos de automóveis sofisticados, visualizaç ã o do interior de ambientes antes de serem construí dos, simuladores de aviões, temos também importantí ssimas aplicações na medicina, como por exemplo: tomografia computadorizada, ultra-sonografias que constr óem imagens em 3 dimensões com alto grau de detalhamento a ponto de se poder visualizar o rosto de uma crianç a antes do seu nascimento .... Com a popularizaç ã o dos computadores pessoais, desenvolveu-se tamb é m um grande segmento da computaç ã o grá fica, que sã o os excelentes jogos em 3D que existem hoje em dia para PC's. Toda essa tecnologia de software que foi desenvolvida para a cria ç ã o dos jogos, foi trazida de aplicações em simuladores militares que tiveram grande expans ã o no final da dé cada de 80. Uma outra importante vertente da computa ç ã o grá fica, que tem chamado a atenç ã o nos ú ltimos anos, é o segmento da educaç ã o denominado ensino a distancia. Com a crescente rapidez e confiabilidade das conexões via Internet, já é possí vel se pensar hoje em dia na criaç ã o de ambientes virtuais onde se pode disponibilizar cursos online dos mais variados assuntos. Dentro dessa filosofia, o departamento de fí sica do ITA tem um projeto de ensinar fí sica bá sica utilizando recursos de informá tica, tanto dentro do ambiente da sala de aula bem como pela Internet. Dessa forma, a cria ç ã o de simulações de fenômenos fí sicos, de preferê ncia em 3D é de fundamental import â ncia para dar suporte a projetos ligados ao ensino da f í sica. Uma das formas mais eficientes de se disponibilizar essas simulações é atravé s de um ambiente virtual de f á cil interatividade com o usuá rio, com a possibilidade de poder salvar suas animações em formato de ví deo, para possí vel reproduç ã o em outros computadores ou na Internet. Em uma iniciaç ã o cientí fica anterior, foi primeiro desenvolvido um ambiente virtual (chamado RhindGL) onde se podia observar animações em 3D dos fenômenos fí sicos estudados, com a possibilidade do usuá rio ter um alto grau de interatividade com o software a fim de facilitar o processo de visualizaç ã o.

Upload: nilton-jansenn

Post on 13-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

fisica quimica e matematica

TRANSCRIPT

  • DESENVOLVIMENTO DE FILMES SOBRE FEN MENOS DA FSICA, QUMICAE MATEMTICA BASEADO EM UM VISUALIZADOR 3D

    L cio Czar S. Rebouas (IC) a, Jos Silvrio E. Germano b

    a Diviso de Cincia da Computao, ITA, CTA, 12228-900, So Jos dos Campos, SP, Brasilb IEFF, Departamento de Fsica, ITA, CTA, 12228-900, So Jos dos Campos, SP, Brasil

    Neste trabalho implementamos uma nova vers o do programa RhindGL, um visualizador defenmenos fsicos feito em C++ para Windows 95/98 criado em uma inicia o cientfica anterior,acrescentando-lhe novas funcionalidades, tais como a visualiza o de mol culas qumicas em 3

    dimens es, o plot de fun es da forma z = f(x, y) e a cria o de arquivos em formato de vdeo a partirda captura de telas das possveis simula es.

    The goal of this work is a implementation of a new version of RhindGL, a physical phenomenasoftware vizualization in C++ for Windows 95/98 created in a previous scientific iniciation,

    increasing it new functionalities, like 3 dimensional chemical molecules visualization, vizualization ofz = f(x, y) mathematical functions and the possibility of construction of files in video format using

    screens captured from the simulations in RhindGL.

    Keywords: OpenGL; GLUT; MFC; simula o 3D; RhindGL; PDB; AVI

    1. INTRODU O

    Com o r pido crescimento que a inform tica tem tido nos ltimos anos, uma rea em especial,denominada computao gr fica, tem se tornado uma grande aliada em v rios ramos do conhecimento.Alm das aplicaes convencionais em reas da engenharia, tais como: construo de prottipos deautomveis sofisticados, visualizao do interior de ambientes antes de serem construdos,simuladores de avies, temos tambm importantssimas aplicaes na medicina, como por exemplo:tomografia computadorizada, ultra-sonografias que constrem imagens em 3 dimenses com alto graude detalhamento a ponto de se poder visualizar o rosto de uma criana antes do seu nascimento ....

    Com a popularizao dos computadores pessoais, desenvolveu-se tambm um grandesegmento da computao gr fica, que so os excelentes jogos em 3D que existem hoje em dia paraPC's. Toda essa tecnologia de software que foi desenvolvida para a criao dos jogos, foi trazida deaplicaes em simuladores militares que tiveram grande expanso no final da dcada de 80.

    Uma outra importante vertente da computao gr fica, que tem chamado a ateno nos ltimos anos, o segmento da educao denominado ensino a distancia. Com a crescente rapidez econfiabilidade das conexes via Internet, j possvel se pensar hoje em dia na criao de ambientesvirtuais onde se pode disponibilizar cursos online dos mais variados assuntos. Dentro dessa filosofia, odepartamento de fsica do ITA tem um projeto de ensinar fsica b sica utilizando recursos deinform tica, tanto dentro do ambiente da sala de aula bem como pela Internet. Dessa forma, a criaode simulaes de fenmenos fsicos, de preferncia em 3D de fundamental importncia para darsuporte a projetos ligados ao ensino da fsica. Uma das formas mais eficientes de se disponibilizaressas simulaes atravs de um ambiente virtual de f cil interatividade com o usu rio, com apossibilidade de poder salvar suas animaes em formato de vdeo, para possvel reproduo emoutros computadores ou na Internet.

    Em uma iniciao cientfica anterior, foi primeiro desenvolvido um ambiente virtual (chamadoRhindGL) onde se podia observar animaes em 3D dos fenmenos fsicos estudados, com apossibilidade do usu rio ter um alto grau de interatividade com o software a fim de facilitar o processode visualizao.

  • A verso 2.0 do RhindGL que foi desenvolvida nesta iniciao cientfica, teve como objetivo aadio de novas funcionalidades verso anterior. Dentre essas novidades podemos citar: incluso dapossibilidade de se estudar funes em 3D que so fundamentais no estudo da matem tica, animaesde molculas qumicas em 3D como ferramenta no auxlio no estudo da qumica e a possibilidade desalvar qualquer dessas animaes em formato de vdeo.

    2. A VERSO RHINDGL 1.1

    A verso 1.1 do visualizador RhindGL foi feita para o ambiente Windows em C++, utilizando-se OpenGL[0] (Open Graphics Library), que um pacote de funes para a construo de aplicativosinterativos em 3 dimenses, compatvel s linguagens C e C++. Devido a OpenGL no possuir a partede interface com o usu rio, utilizamos o compilador Microsoft Visual C++ que possui as facilidadesda Microsoft Foundation Class Library (mais conhecido como MFC)[1] para interao com o usu rio.

    A primeira simulao escolhida para ser implementada em RhindGL 1.1 foi a simulao deinterferncia de ondas circulares. Essa simulao possui a possibilidade de termos a interferncia deat 3 ondas, onde cada uma delas pode possuir caractersticas diferentes. Para ficar mais f cil avisualizao das cristas e dos vales da onda resultante, colocamos uma tonalidade de cores, que vo doazul ao vermelho, passando pelo verde (ver figura 1).

    Figura 1: RhindGL 1.1 com a simulao de uma onda circular tridimensional

    Com o auxlio do mouse, podemos rodar o objeto enquanto a animao est acontecendo,podendo tambm usar efeitos de zoom, tanto atravs do teclado quanto atravs de cones na barra deferramentas.

    Podemos tambm salvar os parmetros de uma dada simulao em um arquivo de simulaodo tipo *.rhi para que esta simulao possa ser novamente carregada pelo programa.

    3. A VERSO RHINDGL 2.0

    Pensamos em adicionar novas funcionalidades verso 1.1 de RhindGL. As funcionalidadesescolhidas foram:

    Construo de molculas qumicas; Visualizao de funes matem ticas da forma z = f(x, y); e Criao de arquivos em formato de vdeo a partir da captura de imagens das simulaes.

    Utilizando os cones da barra de tarefas na seqncia com que eles so habilitados, conseguimosgerar um arquivo AVI. Saiba que:

  • ISC (Init Screen Capture): inicia a captura de telas para a formao do arquivo AVI com umadada freqncia e uma dada qualidade.

    SSC (Stop Screen Capture): finaliza a captura de telas para a formao do arquivo AVI. AVI: Cria o arquivo AVI em um diretrio determinado pelo usu rio a partir das telas

    capturadas anteriormente.Estes cones so habilitados na barra de ferramentas conforme a demanda. A barra de

    ferramentas, com as novas funcionalidades, mostrada a seguir:

    Figura 2: A barra de ferramentas da verso 2.0 de RhindGL

    Assim, a verso 2.0 de RhindGL tem a capacidade de salvar dois tipos de arquivo diferentes: Arquivos de simulaes (*.rhi) que guarda os parmetros de cada simulao; e Arquivos em formato de vdeo (*.avi).

    4. CONSTRU O DE MOL CULAS QUMICAS

    Atravs de buscas na internet sobre a existncia de visualizadores especficos para molculasqumicas em 3 dimenses, encontramos v rios ambientes de construo de molculas qumicas foramencontrados e entre eles havia v rios tipos de arquivos que guardavam as molculas, dentre eles haviaum tipo de arquivo muito interessante: o tipo PDB[2].

    PDB (Protein Data Bank) um formato de arquivo onde estruturas de macromolculasbiolgicas so descritas de maneira tridimensional. Muitas dessas macromolculas possuem estruturasque foram determinadas experimentalmente. Esse formato de arquivo serve uma grande comunidadede pesquisadores e estudantes. Um exemplo: a molcula de metano.

    ATOM 1 C1 xxx 1 -0.000 0.000 -0.000ATOM 2 H2 xxx 1 -0.531 -0.164 0.964ATOM 3 H3 xxx 1 0.713 0.848 0.110ATOM 4 H4 xxx 1 0.559 -0.922 -0.277ATOM 5 H5 xxx 1 -0.740 0.238 -0.796TERCONECT 1 2 3 4 5CONECT 2 1CONECT 3 1CONECT 4 1CONECT 5 1END

    Nesta busca, encontramos tambm um programa[3] que convertia arquivos PDB em doisarquivos em C com cdigos em OpenGL. Como o nosso projeto foi feito em C++, tivemos queadequar esses cdigos gerados de C para C++ e inclumos no projeto da nova verso de RhindGL.

    Feitas as adequaes, a verso 2.0 de RhindGL conta com 4 molculas qumicas paravisualizao: uma molcula de metano (ver figura 2a), uma de ciclohexano (ver figura 2b), uma deATP (Adenosina Tri-Fosfato) (ver figura 3a) e um trecho da estrutura cristalina de um diamante (verfigura 3b).

    5. A VISUALIZA O DE FUN ES

    A partir do trmino da implementao da animao de interferncia de ondas em um plano,vimos uma nova linha de ao que poderia ser seguida para o crescimento do projeto do visualizador:a visualizao de funes do tipo z = f(x, y), onde x, y e z so referencias ao sistema de coordenadasretangulares (ver figuras 4 e 5).

  • Percebemos que a classe utilizada para criarmos a animao de interferncia de ondascirculares j existente no visualizador, a classe CGLWave, poderia ser reutilizada para a visualizaodas funes do tipo z = f(x, y), em coordenadas retangulares, pois o que muda somente a equao aser plotada. Esta classe desenha uma grade de polgonos retangular no espao e centrada na origem,onde cada vrtice de um polgono possui uma tripla (x, y, z = f(x, y)). O par (x, y) da a posio daprojeo desse vrtice no plano xy e z nos d a distncia do vrtice a essa sua projeo.

    (a) (b)Figura 2: (a) Molcula de metano e (b) molcula de cicloHexano

    (a) (b)Figura 3: (a) Molcula de Adenosina Tri-Fosfato (ATP) e (b) estrutura cristalina de um diamante.

    (a) (b)Figura 4: Funo f(x, y) = x*sin(y)+y*sin(x) como: (a) sada do visualizador e (b) sada no Maple.

  • (a) (b)Figura 5: Funo f(x, y) = sin(x) + cos(y) como: (a) sada do visualizador e (b) sada no Maple.

    6. ARQUIVOS EM FORMATO DE VDEO

    O formato AVI[4] ( udio Vdeo Interleaved) um formato de multimdia criado pelaMicrosoft. Em um arquivo AVI, os elementos de vdeo so guardados alternadamente no arquivo, dao nome interleaved.

    Na pesquisa sobre a criao de arquivos AVI, encontramos um programa, com o cdigo fontelivre[5], que tem como entrada uma seqncia de arquivos BMP onde a ordem de insero dessesarquivos em uma fila determina a ordem com que as respectivas imagens sero colocadas no arquivoAVI.

    Dividimos a criao do arquivo AVI em duas partes: A captura das imagens da simulao; e A criao do arquivo AVI propriamente dito.

    6.1 A Captura de imagens

    Para que tenhamos a impresso de animao no futuro arquivo em formato de vdeo, devemoscapturar as telas a uma dada freqncia. Para tal, utilizamos o conceito de threads[6] para que a capturadas telas possa ser feita enquanto a simulao esteja ocorrendo.

    As telas capturadas so convertidas em arquivos BMP. Os arquivos BMP gerados na m quinado usu rio sero deletados aps o trmino da criao do arquivo AVI correspondente.

    6.2 A Criao do arquivo em formato de vdeo

    Para a criao do arquivo AVI, criamos uma thread assim como foi feito para a captura dasimagens. Isso serviu para garantir que as animaes iriam continuar sendo mostradas sem falhas natela. Esta thread coloca os arquivos BMP dentro de um streaming AVI a uma dada freqncia definidapelo usu rio do programa e como foi mencionado anteriormente, no final da criao do arquivo AVI,os arquivos BMPs so deletados.

    7. CONCLUS ES

    Como produto final desta iniciao cientfica criamos um visualizador de fenmenos fsicosem 3 dimenses, de funes matem ticas e de molculas qumicas. O usu rio deste programa podeescolher 3 tipos diferentes de simulao:

    interferncia de ondas circulares; visualizao de molculas qumicas; e visualizao de funes da forma z = f(x, y).

    Na simulao de interferncia de ondas circulares, o usu rio pode entrar com os parmetros dasimulao. J nos outros dois casos, o usu rio pode escolher uma molcula qumica ou uma funopara ser visualizada mas no pode modificar determinados parmetros alm da posio de cmera, taiscomo, cores dos tomos no caso da simulao de molculas qumicas e .

  • O usu rio tem a possibilidade de criar arquivos de simulao (do tipo *.rhi) salvando osparmetros de cada simulao e arquivos em formato de vdeo (*.avi) gerados a partir da animao dassimulaes existentes no programa.

    Como sugestes para continuao deste trabalho, podemos citar: O aumento da quantidade de simulaes de fenmenos fsicos, molculas qumicas e

    funes em 3 dimenses; A diminuio do tamanho dos arquivos em formato de vdeo escolhendo outro

    formato de compresso, como por exemplo, MPEG; A implementao da escala numrica das funes plotadas; Transformar o fundo das simulaes transparentes, ou seja: fazer o fundo cinza das

    figuras acima ficarem transparentes quando for implementada uma funo print no visualizador.

    AGRADECIMENTOS

    Agradecemos o apoio do PIBIC-CNPQ pelo auxlio financeiro dado. Gostaramos deagradecer tambm ao Prof. Jos Silvrio Edmundo Germano por ter acreditado que o trabalho poderiaser feito, mesmo para uma pessoa que tinha pouco contato com programao em geral. Gostaramos deagradecer tambm ao Prof. F bio Carneiro Mokarzel1 por ter dado todo o apoio tcnico e sempredisponvel para debater e tirar d vidas.

    REFERNCIAS BIBLIOGRFICAS

    [0] OpenGL Tutorial: http://nehe.gamedev.net/ http://www.sgi.com/software/opengl/

    [1] MFC Tutorial: Special Edition Using Visual C++ http://nps.vnet.ee/ftp/Docs/C/Using%20Visual%20C++%206/[2] PDB Users Guide: http://www.rcsb.org/pdb/docs/format/pdbguide2.2/guide2.2_frame.html[3] 3Dwin4: http://www.stmuc.com/thbaier/[4] AVI File Creation: http://www.shrinkwrapvb.com/avihelp/avihelp.htm[5] CAvi Source Code: http://www.programmersheaven.com/zone10/cat542/15375.htm[6] Using Threads in C++: Special Edition Using Visual C++ - Chapter 27

    1 O Prof. F bio Carneiro Mokarzel Professor Doutor e atual Chefe do Depto. de Engenharia de Software daDiviso de Cincia da Computao do ITA.