Enunciado de Exercício – Renderização de uma Casa
Objetivo:
Desenvolver um algoritmo em C utilizando OpenGL ou em Python utilizando Pillow que
desenhe/“renderize” uma representação gráfica de uma casa. O exercício deve estimular o estudante a
pensar sobre resolução de tela, projeção do objeto e coordenadas geométricas.
Descrição do Problema:
Você deve criar um programa que desenhe uma casa simples composta, pelo menos, pelos seguintes
elementos:
• Estrutura principal (parede)
• Telhado
• Porta
• Janela(s)
O desenho deve ser proporcional e centralizado na tela ou na imagem.
Requisitos:
1. Resolução:
o O estudante deve definir a resolução da janela (em OpenGL) ou da imagem (em
Pillow) e justificar a escolha da resolução em termos de clareza, proporção e
desempenho.
2. Projeção:
o Para OpenGL: escolha e configure o tipo de projeção (ortográfica ou perspectiva) e
explique por que essa projeção é adequada para visualizar a casa.
o Para Pillow: explique como as coordenadas da imagem são definidas e como isso
influencia a posição e o tamanho da casa.
3. Geometria:
o Use primitivas geométricas básicas (retângulos, triângulos, linhas) para desenhar os
elementos da casa.
o Explique os cálculos usados para dimensionar cada parte da casa em relação à
resolução da tela/imagem.
4. Documentação:
o Inclua comentários no código explicando cada cálculo de posição, tamanho e cor.
o Faça um breve relatório (ou comentário detalhado) justificando as escolhas de
resolução, projeção e proporção do objeto renderizado.
Critérios de Avaliação:
• Correção do desenho da casa (proporções coerentes e elementos presentes).
• Clareza na definição da resolução e da projeção.
• Justificativa detalhada dos cálculos geométricos.
• Organização e legibilidade do código.
Extras (opcional):
• Adicionar cores aos elementos da casa.
// [Link]
// Ola Opengl1
//
// Created by ADJChinapaie on 24/10/25.
#include <GLFW/glfw3.h>
int main(void) {
GLFWwindow * window;
/* Inicializar a biblioteca */
if (!glfwInit()) return -1;
/* Criar uma janela em modo janela e seu contexto OpenGL */
window = glfwCreateWindow(640, 480, "isptec", NULL, NULL);
if (!window){
glfwTerminate();
return -1;
}
/* Tornar o contexto da janela atual */
glfwMakeContextCurrent(window);
/* Loop até o utilizador fechar a janela */
while (!glfwWindowShouldClose(window)) {
/* Renderizar aqui */
glClear(GL_COLOR_BUFFER_BIT);
/* Trocar os buffers frontal e traseiro */
glfwSwapBuffers(window);
/* Capturar e processar eventos */
glfwPollEvents();
}
glfwTerminate();
return 0;
}