TAREFA 1

Este é o relatório da primeira tarefa da disciplina IA841 - Introdução à Modelagem de Sólidos. Esta atividade consiste em implementar a construção dos sólidos de Plaão e criar uma cena com estes objetos.


Implementação

O programa foi feito em ANSI C e foi utilizada as API OpenGL e GLUT para visualização.
A implementação consiste em três arquivos: platonic_solids.h, platonic_solids.c e glutviewer.c. Como o próprio nome indica, os arquivos platonic_solids.{h,c} contêm o código para a criação dos sólidos de Platão e o outro arquivo contém a construção de um cenário e de uma animação com esses sólidos.
Na plataforma UNIX, compile o programa com o comando "make" e execute-o com "./solids".


Construindo Sólidos de Platão

Todos os sólidos foram construídos com lado unitário.
Para a construção do tetraedro, hexaedro (cubo) e do octaedro não foi necessário nenhum algoritmo, bastou calcular a posição dos vértices e as suas conexidades.
Já para construir o icosaedro foi utilizado o seguinte algoritmo:

Por último, para construir o dodecaedro, basta montar o dual do icosaedro. Para isso, ache o baricentro de cada face do icosaedro e ligue esses vértices caso sejam oriundos de triângulos adjacentes. Assim, as pirâmides superior e inferior formam dois pentágonos e as faces laterais formam mais 10 pentágonos.


Cenário

O cenário contém os cinco sólidos. Para melhor visualização, o tetraedro, o hexaedro e o octaedro foram reescalados.
O programa oferece duas funcionalidades: (1) animação de todos os sólidos em relação ao seu eixo y; (2)visualização em perspectiva ou ortogonal. Essas funcionalidades são controladas pelas letras "p" e "v".

Projeção Perspectiva Projeção Ortogonal
Fernando Ferrari de Goes