Atividade: Modelagem de uma cena composta de sólidos platônicos
Disciplina IA841 - Introdução à Modelagem de Sólidos - profa. Wu, Shin Ting
Alex F. Seehagen - RA 058483 - alexfsee [at] dca.fee.unicamp.br





Nesta atividade foram modelados os cinco sólidos platônicos:

Tetraedro (4 faces),
Cubo (6 faces),
Octaedro (8 faces),
Dodecaedro (12 faces) e
Icosaedro (20 faces), em C++, utilizando OpenGL.

Para a modelagem, foram inseridos as coordenadas dos vértices, e as sequências de vértices que formavam cada face. Após isso, traçava-se polígonos unindo tais vértices, pelo comando GL_POLYGON.

Para a composição da cena, o icosaedro foi inserido no centro, enquanto os outros sólitos "orbitam" ao seu redor.

Para uma melhor visualização das faces, cada vértice de uma face foi preenchido com uma cor diferente. Abaixo, cada polígono é demonstrado:


Tetraedro

 Coordenadas dos 4 vértices: (v0, v1, v2, v3)
{-1, -1, -1}, {1, 1, -1}, {1, -1, 1}, {-1, 1, 1}

Vértices usados nas 4 faces:
{0,1,2}, {0,1,3}, {0,2,3}, {1,2,3}

   
Cubo


Coordenadas dos 8 vértices: (v0, v1, v2, v3, v4, v5, v6, v7)
{1, 1, 1}, {-1, 1, 1}, {-1, -1, 1}, {1, -1, 1},
{1, -1, -1}, {1, 1, -1}, {-1, 1, -1}, {-1, -1, -1}

Vértices usados nas 6 faces:
{0,1,2,3}, {0,3,4,5}, {0,5,6,1}, {1,6,7,2}, {7,4,3,2}, {4,7,6,5}
   
Octaedro

Coordenadas dos 6 vértices: (v0, v1, v2, v3, v4, v5)
{0, 1, 0}, {-1, 0, 0}, {0, 0, 1}, {1, 0, 0}, {0, 0, -1}, {0,-1,0}

Vértices usados nas 8 faces:
{0,1,2}, {0,2,3}, {0,3,4}, {0,4,1},
{5,1,2}, {5,2,3}, {5,3,4}, {5,4,1}
   
Dodecaedro

Coordenadas dos 20 vértices: (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19)

* Aqui é usado a razão de ouro para o desenho dos pentágonos: 1.6180 = (1+ sqrt(5)) / 2:

A = 1.6180
B = 0.6180

{-A, 0, B}, {-A, 0, -B}, {A, 0, -B}, {A, 0, B}, {B, -A, 0},
{-B, -A, 0}, {-B, A, 0}, {B, A, 0}, {0, B, -A}, {0, -B, -A},
{0, -B, A}, {0, B, A}, {-C, -C, C}, {-C, -C, -C}, {C, -C, -C},
{C, -C, C}, {-C, C, C}, {-C, C, -C}, {C, C, -C}, {C, C, C}

Vértices usados nas 12 faces:
{0, 12, 10, 11, 16}, {1, 17, 8, 9, 13}, {2, 14, 9, 8, 18},
{3, 19, 11, 10, 15}, {4, 14, 2, 3, 15}, {5, 12, 0, 1, 13},
{6, 17, 1, 0, 16}, {7, 19, 3, 2, 18}, {8, 17, 6, 7, 18},
{9, 14, 4, 5, 13}, {10, 12, 5, 4, 15}, {11, 19, 7, 6, 16}

   
Icosaedro

Coordenadas dos 12 vértices: (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)

{-0.5257, 0.0, 0.8506}, {0.5257, 0.0, 0.8506},
{-0.5257, 0.0, -0.8506}, {0.5257, 0.0, -0.8506},
{0.0, 0.8506, 0.5257}, {0.0, 0.8506, -0.5257},
{0.0, -0.8506, 0.5257}, {0.0, -0.8506, -0.5257},
{0.8506, 0.5257, 0.0}, {-0.8506, 0.5257, 0.0},
{0.8506, -0.5257, 0.0}, {-0.8506, -0.5257, 0.0}

Vértices usados nas 20 faces
{0,4,1}, {0,9,4}, {9,5,4}, {4,5,8}, {4,8,1},
{8,10,1}, {8,3,10}, {5,3,8}, {5,2,3}, {2,7,3},
{7,10,3}, {7,6,10}, {7,11,6}, {11,0,6}, {0,1,6},
{6,1,10}, {9,0,11}, {9,11,2}, {9,2,5}, {7,2,11}


Para ver o executável e o código-fonte, clique aqui e salve o arquivo ZIP.

Ao executar o progama, são permitidas a visualização com preenchimento (ou FILL - tecla f) em wireframe (ou LINE - tecla l) ou apenas dos vértices (ou POINTS - tecla p), todas EM MÍNUSCULAS.