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. |