You are on page 1of 6

DESENVOLVIMENTO DE FILMES SOBRE FEN MENOS DA FSICA, QUMICA

E MATEMTICA BASEADO EM UM VISUALIZADOR 3D


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

Divis o de Cincia da Computa o, ITA, CTA, 12228-900, S o Jos dos Campos, SP, Brasil
b
IEFF, Departamento de Fsica, ITA, CTA, 12228-900, S o Jos dos Campos, SP, Brasil

Neste trabalho implementamos uma nova vers o do programa RhindGL, um visualizador de


fenmenos 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 partir
da captura de telas das possveis 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.
Alm das aplicaes convencionais em reas da engenharia, tais como: constru o de prottipos de
automveis sofisticados, visualiza o 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 grau
de detalhamento a ponto de se poder visualizar o rosto de uma criana antes do seu nascimento ....
Com a populariza o dos computadores pessoais, desenvolveu-se tambm 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
aplicaes em simuladores militares que tiveram grande expans o no final da dcada 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 conexes via Internet, j possvel 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 fsica do ITA tem um projeto de ensinar fsica 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 simulaes de fenmenos fsicos, de preferncia em 3D de fundamental importncia para dar
suporte a projetos ligados ao ensino da fsica. Uma das formas mais eficientes de se disponibilizar
essas simulaes atravs de um ambiente virtual de f cil interatividade com o usu rio, com a
possibilidade de poder salvar suas animaes em formato de vdeo, para possvel reprodu o em
outros computadores ou na Internet.
Em uma inicia o cientfica anterior, foi primeiro desenvolvido um ambiente virtual (chamado
RhindGL) onde se podia observar animaes em 3D dos fenmenos fsicos 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.

A vers o 2.0 do RhindGL que foi desenvolvida nesta inicia o cientfica, teve como objetivo a
adi o de novas funcionalidades vers o anterior. Dentre essas novidades podemos citar: inclus o da
possibilidade de se estudar funes em 3D que s o fundamentais no estudo da matem tica, animaes
de molculas qumicas em 3D como ferramenta no auxlio no estudo da qumica e a possibilidade de
salvar qualquer dessas animaes em formato de vdeo.
2. A VERS O RHINDGL 1.1
A vers o 1.1 do visualizador RhindGL foi feita para o ambiente Windows em C++, utilizandose OpenGL[0] (Open Graphics Library), que um pacote de funes para a constru o de aplicativos
interativos em 3 dimenses, compatvel s linguagens C e C++. Devido a OpenGL n o possuir a parte
de interface com o usu rio, utilizamos o compilador Microsoft Visual C++ que possui as facilidades
da Microsoft Foundation Class Library (mais conhecido como MFC)[1] para intera o com o usu rio.
A primeira simula o escolhida para ser implementada em RhindGL 1.1 foi a simula o de
interferncia de ondas circulares. Essa simula o possui a possibilidade de termos a interferncia de
at 3 ondas, onde cada uma delas pode possuir caractersticas diferentes. Para ficar mais f cil a
visualiza o das cristas e dos vales da onda resultante, colocamos uma tonalidade de cores, que v o do
azul ao vermelho, passando pelo verde (ver figura 1).

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


Com o auxlio do mouse, podemos rodar o objeto enquanto a anima o est acontecendo,
podendo tambm usar efeitos de zoom, tanto atravs do teclado quanto atravs de cones na barra de
ferramentas.
Podemos tambm salvar os parmetros de uma dada simula o em um arquivo de simula o
do tipo *.rhi para que esta simula o possa ser novamente carregada pelo programa.
3. A VERS O RHINDGL 2.0
Pensamos em adicionar novas funcionalidades vers o 1.1 de RhindGL. As funcionalidades
escolhidas foram:
Constru o de molculas qumicas;
Visualiza o de funes matem ticas da forma z = f(x, y); e
Cria o 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 s o habilitados, conseguimos
gerar um arquivo AVI. Saiba que:

ISC (Init Screen Capture): inicia a captura de telas para a forma o do arquivo AVI com uma
dada freqncia e uma dada qualidade.
SSC (Stop Screen Capture): finaliza a captura de telas para a forma o do arquivo AVI.
AVI: Cria o arquivo AVI em um diretrio determinado pelo usu rio a partir das telas
capturadas anteriormente.
Estes cones s o 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 vers o 2.0 de RhindGL

Assim, a vers o 2.0 de RhindGL tem a capacidade de salvar dois tipos de arquivo diferentes:
Arquivos de simulaes (*.rhi) que guarda os parmetros de cada simula o; 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 molculas
qumicas em 3 dimenses, encontramos v rios ambientes de constru o de molculas qumicas foram
encontrados e entre eles havia v rios tipos de arquivos que guardavam as molculas, dentre eles havia
um tipo de arquivo muito interessante: o tipo PDB [2].
PDB (Protein Data Bank) um formato de arquivo onde estruturas de macromolculas
biolgicas s o descritas de maneira tridimensional. Muitas dessas macromolculas possuem estruturas
que foram determinadas experimentalmente. Esse formato de arquivo serve uma grande comunidade
de pesquisadores e estudantes. Um exemplo: a molcula de metano.
ATOM 1 C1 xxx 1 -0.000 0.000 -0.000
ATOM 2 H2 xxx 1 -0.531 -0.164 0.964
ATOM 3 H3 xxx 1
0.713 0.848 0.110
ATOM 4 H4 xxx 1
0.559 -0.922 -0.277
ATOM 5 H5 xxx 1 -0.740 0.238 -0.796
TER
CONECT 1 2 3 4 5
CONECT 2 1
CONECT 3 1
CONECT 4 1
CONECT 5 1
END
Nesta busca, encontramos tambm um programa[3] que convertia arquivos PDB em dois
arquivos em C com cdigos em OpenGL. Como o nosso projeto foi feito em C++, tivemos que
adequar esses cdigos gerados de C para C++ e inclumos no projeto da nova vers o de RhindGL.
Feitas as adequaes, a vers o 2.0 de RhindGL conta com 4 molculas qumicas para
visualiza o: uma molcula de metano (ver figura 2a), uma de ciclohexano (ver figura 2b), uma de
ATP (Adenosina Tri-Fosfato) (ver figura 3a) e um trecho da estrutura cristalina de um diamante (ver
figura 3b).
5. A VISUALIZA O DE FUN ES
A partir do trmino da implementa o da anima o de interferncia de ondas em um plano,
vimos uma nova linha de a o que poderia ser seguida para o crescimento do projeto do visualizador:
a visualiza o de funes do tipo z = f(x, y), onde x, y e z s o referencias ao sistema de coordenadas
retangulares (ver figuras 4 e 5).

Percebemos que a classe utilizada para criarmos a anima o de interferncia de ondas


circulares j existente no visualizador, a classe CGLWave, poderia ser reutilizada para a visualiza o
das funes do tipo z = f(x, y), em coordenadas retangulares, pois o que muda somente a equa o a
ser 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 posi o da
proje o desse vrtice no plano xy e z nos d a distncia do vrtice a essa sua proje o.

(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: Fun o f(x, y) = x*sin(y)+y*sin(x) como: (a) sada do visualizador e (b) sada no Maple.

(a)
(b)
Figura 5: Fun o 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 pela
Microsoft. Em um arquivo AVI, os elementos de vdeo s o guardados alternadamente no arquivo, da
o nome interleaved.
Na pesquisa sobre a cria o de arquivos AVI, encontramos um programa, com o cdigo fonte
livre[5], que tem como entrada uma seqncia de arquivos BMP onde a ordem de inser o desses
arquivos em uma fila determina a ordem com que as respectivas imagens ser o colocadas no arquivo
AVI.
Dividimos a cria o do arquivo AVI em duas partes:
A captura das imagens da simula o; e
A cria o do arquivo AVI propriamente dito.
6.1 A Captura de imagens
Para que tenhamos a impress o de anima o no futuro arquivo em formato de vdeo, devemos
capturar as telas a uma dada freqncia. Para tal, utilizamos o conceito de threads[6] para que a captura
das telas possa ser feita enquanto a simula o esteja ocorrendo.
As telas capturadas s o convertidas em arquivos BMP. Os arquivos BMP gerados na m quina
do usu rio ser o deletados aps o trmino da cria o do arquivo AVI correspondente.
6.2 A Criao do arquivo em formato de vdeo
Para a cria o do arquivo AVI, criamos uma thread assim como foi feito para a captura das
imagens. Isso serviu para garantir que as animaes iriam continuar sendo mostradas sem falhas na
tela. Esta thread coloca os arquivos BMP dentro de um streaming AVI a uma dada freqncia definida
pelo usu rio do programa e como foi mencionado anteriormente, no final da cria o do arquivo AVI,
os arquivos BMPs s o deletados.
7. CONCLUS ES
Como produto final desta inicia o cientfica criamos um visualizador de fenmenos fsicos
em 3 dimenses, de funes matem ticas e de molculas qumicas. O usu rio deste programa pode
escolher 3 tipos diferentes de simula o:
interferncia de ondas circulares;
visualiza o de molculas qumicas; e
visualiza o de funes da forma z = f(x, y).
Na simula o de interferncia de ondas circulares, o usu rio pode entrar com os parmetros da
simula o. J nos outros dois casos, o usu rio pode escolher uma molcula qumica ou uma fun o
para ser visualizada mas n o pode modificar determinados parmetros alm da posi o de cmera, tais
como, cores dos tomos no caso da simula o de molculas qumicas e .

O usu rio tem a possibilidade de criar arquivos de simula o (do tipo *.rhi) salvando os
parmetros de cada simula o e arquivos em formato de vdeo (*.avi) gerados a partir da anima o das
simulaes existentes no programa.
Como sugestes para continua o deste trabalho, podemos citar:
O aumento da quantidade de simulaes de fenmenos fsicos, molculas qumicas e
funes em 3 dimenses;
A diminui o do tamanho dos arquivos em formato de vdeo escolhendo outro
formato de compress o, como por exemplo, MPEG;
A implementa o 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 fun o print no visualizador.
AGRADECIMENTOS
Agradecemos o apoio do PIBIC-CNPQ pelo auxlio financeiro dado. Gostaramos de
agradecer tambm ao Prof. Jos Silvrio Edmundo Germano por ter acreditado que o trabalho poderia
ser feito, mesmo para uma pessoa que tinha pouco contato com programa o em geral. Gostaramos de
agradecer tambm ao Prof. F bio Carneiro Mokarzel1 por ter dado todo o apoio tcnico e sempre
disponvel para debater e tirar d vidas.
REFER NCIAS 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

O Prof. F bio Carneiro Mokarzel Professor Doutor e atual Chefe do Depto. de Engenharia de Software da
Divis o de Cincia da Computa o do ITA.