You are on page 1of 5

Projecto Final de Programa

c
ao Optica
Geom
etrica
Ines Terrucha 75843
Patrcia Manso 79026
Programacao
Professor Samuel Eleuterio
Instituto Superior Tecnico
Mestrado em Engenharia Fsica e Tecnologica
2013/2014
13 de Janeiro de 2014

Resumo
O presente relat
orio faz-se acompanhar do codigo referente ao projecto computacional,
servindo de complemento para o mesmo. Assim, apresenta-se como que um manual de
instruc
oes para o utilizador do programa e explica, sumariamente, os objectivos do projecto.

Introdu
c
ao

De entre os temas propostos na pagina da cadeira <http://arjuna.ist.utl.pt/IC/>,


mais especificamente <http://arjuna.ist.utl.pt/IC/Trabalhos/Trabalhos_Finais_1314.

pdf> optamos pelo intitulado Optica


Geom
etrica - Espelhos Esf
ericos.
A escolha ter
a sido acompanhada de um leque de ideias, algumas mais facilmente realizaveis
que outras, mas tnhamos de facto uma visao em mente. Esperamos ter cumprido os objectivos
previstos, embora o tempo seja sempre escasso quando se pode acrescentar pormenores e detalhes
num limite que se estende ao infinito.

Manual de Instru
co
es

Para o Programador
O codigo do programa est
a escrito em C em ambiente de janelas, sendo que para as construir terao sido utilizadas as bibliotecas Gtk+. Optamos por iniciar o programa numa janela
inicial que pede ao utilizador a escolha de outras 3, cada uma referente a cada tipo de espelho:
concavo, convexo ou plano (tnhamos inicialmente pensado em utilizar apenas uma janela com
um espelho interactivo a utilizar o comando cairo curve to mas acabamos por mudar para o
descrito anteriormente que utiliza no caso do espelho concavo e convexo o comando cairo arc
por conveniencia).
Para organizar tanto os bot
oes como as labels, como os objectos ou a toolbar, optamos pela
utilizacao de vboxes e hboxes. Utiliz
amos ainda o conhecido cairo para a criacao dos diversos
objectos e tudo o mais que seja animado no programa.
Todos os pequenos pormenores relativamente a programacao podem ainda ser consultados
no proprio c
odigo, uma vez que este se encontra extensivamente comentado.

Para o Utilizador
Uma vez aberto o programa, o utilizador dara de caras imediatamente com uma janela inicial
com o aspecto da Fig. 1. Esta permite redireccionar o utilizador para uma, ou todas, as nossas
janelas secund
arias. Cada uma delas tem, respectivamente os aspectos correspondentes `as Fig.
2 (espelho concavo - bot
ao )), 4 (espelho convexo - botao () e 3 (espelho plano - botao |).
Comecemos portanto por falar nas funcionalidades da janela representada na Fig. 1. Para
alem dos 3 bot
oes que se encontram no fim da janela, reconhecemos facilmente 3 outros icons
na parte superior da mesma. O ponto de interrogacao, que permite aceder directamente a este
mesmo documento (desde que este se encontre na mesma directoria do programa e conserve o
nome relatorio.pdf); o bot
ao de desligar (smbolo universal), que termina o programa; e o icon de
um altifalante, que permite a audic
ao de uma m
usica considerada, pelas programadoras, alusiva
ao tema (Nota: esta opc
ao est
a em stand-by e ainda n
ao funciona, a discutir com o Professor.).

Figura 1: Screenshot da janela inicial do nosso programa.

Se clicarmos, portanto, no bot


ao ), surge uma nova janela no desktop do utilizador semelhante `a previamente referida Fig. 2. Nesta, comecando pelo topo, o utilizador pode ajustar o
raio do objecto, assim como mudar a curvatura do espelho, isto enquanto visualiza o valor da
distancia objecto-espelho, assim como a distancia imagem-espelho ou o raio da imagem.
Logo abaixo (relativamente ao topo da janela), encontram-se o objecto, o espelho, a imagem,
o centro C e o foco F, assim como a trajectoria dos raios. Para mudar a posicao do objecto
sobre o eixo, o utilizador apenas necessita de o arrastar fazendo uso do rato (note-se que est
a
includa uma surpresa caso o utilizador pressione as teclas enquanto opera na janela - spoiler
alert - o objecto e a imagem mudam de cor).
Por fim, o utilizador ir
a encontrar 3 icons no final da janela, comecando num switch que
acende as luzes (faz aparecer os raios), um reset que retorna o objecto e o espelho `as suas
posicoes iniciais, e um conhecido icon save que tira um screenshot `a janela de modo a poder ser
utilizada mais tarde.

Figura 2: Screenshot da janela referente ao espelho concavo.

Caso o utilizador clique no bot


ao |, sera aberta uma janela do tipo da Fig. 3, que possui funcionalidades equivalentes `
as descritas anteriormente, com excepcao da possibilidade de
mudanca do raio da curvatura do espelho (por se tratar de uma analise ao espelho plano).

Figura 3: Screenshot da janela referente ao espelho plano.


Por u
ltimo, o utilizador poder
a ainda clicar no botao ( atraves do qual e aberta uma janela
equivalente `a da Fig. 4, com funcionalidades semelhantes a todas as previamente descritas.

Figura 4: Screenshot da janela referente ao espelho convexo.

De notar que sempre que o utilizador pretender sair de uma janela, o programa perguntarlhe-a atraves de uma janela di
alogo semelhante `a da Fig. 5 se quer mesmo sair.

Figura 5: Screenshot da janela dialogo Are you sure you want to quit?.

Conclus
ao

In
es
A trabalhar pela segunda vez em Gtk+, apercebi-me o quao enferrujada me encontrava
novamente, e acabei por experimentar maneiras diferentes de fazer as coisas e por me focar em
pormenores diferentes. Continuo a preferir trabalhar em ambiente de janelas pelo ver coisas a
acontecer. De resto, tenho apenas a acrescentar que este trabalho nunca estaria acabado se o
tempo fosse infinito uma vez que e sempre possvel acrescentar detalhes a projectos deste tipo.
Apenas tenho a dizer que gosto da forma como foi elaborado apesar de todas as voltas que deu
ate ao resultado final.

Patrcia
Apesar do conte
udo fsico/matem
atico necessario para o criar ser bastante simples, o projecto
de
foi muito interessante e enriquecedor, especialmente do ponto de vista da programacao. E
facto fascinante ver as centenas de linhas de codigo ganhar vidasob os nossos comandos e criar
um programa u
til, f
acil de utilizar e, sob certos pontos de vista, bastante divertido.
O sistema GTK+ mostrou-se realmente uma otima ferramenta, tal como o cairo, e serviram
muito bem para os nossos prop
ositos.
Do ponto de vista do utilizador, penso que o programa e bastante claro e user friendly,
sendo manipulado maioritariamente `
a base do rato, e tem algumas caractersticas engracadas
que tornam tudo bastante mais interessante.
Como balanco final, posso dizer que foi um trabalho extremamente benefico para o nosso
desenvolvimento enquanto programadoras, tendo fomentado a nossa aprendizagem do funcionamento e utilizac
ao do GTK+, do cairo e da propria linguagem de programacao C.

You might also like