Lista de Exercícios de Computação Gráfica

Esta é a lista de exercícios de GCC124. Atualizada pela última vez em julho de 2018.

  1. Explique qual a diferença (características gerais, vantagens e desvantagens) entre uma imagem vetorial e uma matricial (bitmap).
  2. É possível converter qualquer imagem vetorial numa imagem matricial? É possível converter qualquer imagem matricial numa imagem vetorial?
  3. Desenhe um diagrama que apresenta as várias etapas da síntese de imagens pelo modelo da câmera estenopeica.
  4. [ENADE2014] O algoritmo de traçado de raios (ray-tracing) é considerado um marco no desenvolvimento de técnicas de computação gráfica para a geração de imagens realistas. A partir das imagens apresentadas, conclui-se que a técnica de traçado de raios foi utilizada para a geração
    Imagem 1
    Imagem 2
    Imagem 3
    1. apenas da imagem 1
    2. apenas da imagem 2
    3. apenas das imagens 1 e 3
    4. apenas das imagens 2 e 3
    5. das imagens 1, 2 e 3
  5. diagrama de uma pirâmide Descreva a geometria da pirâmide ao lado tal como ficaria num arquivo, usando o seguinte formato:
    O primeiro número (n) é o número de vértices. Os 3n números seguintes são as coordenadas dos vértices. A seguir vem várias sequências de números terminadas em zero. Cada uma define uma face. O primeiro vértice é identificado pelo número um.
  6. Usando uma biblioteca de programação, implemente um programa que apresenta a pirâmide do exercício anterior e permite a modificação interativa do observador. Sugestão: use a biblioteca V-ART.
  7. Crie uma nova classe de objeto gráfico no V-ART: o disco semitransparente. Faça um programa que demonstra o uso dessa classe.
  8. transformação sobre um pentágono Cite duas transformações (nome da transformação e parâmetros) que, aplicadas sozinhas, produzem o resultado mostrado ao lado.
  9. Defina uma função que recebe um ponto P0, um ponto P1 e uma distância d; e retorna o ponto P2 que está na mesma reta definida por P0 e P1, a uma distância d de P0 e é mais o próximo possível de P1.
  10. Encontre quatro vetores no espaço 3D de tal forma que todos os ângulos entre dois vetores quaisquer sejam iguais e maiores que 90 graus.
  11. Um determinado programa precisa que o usuário lhe forneça um ponto no espaço 3D. Ele deve fazer isso lendo três números (três escalares). O que o programa deve ler para obter:
    1. Um vetor 3D
    2. Uma rotação 3D
    3. Uma transformação de escala no espaço 3D
    4. Um plano no espaço 3D
    5. Um sistema de coordenadas 3D
    6. Uma projeção paralela
    7. Uma câmera virtual
    No exemplo, os três escalares representam as três coordenadas do ponto. Explique o significado de cada coisa lida.
  12. Implemente uma sub-rotina que determina se um polígono é convexo (ou é côncavo).
  13. Usando produto vetorial, implemente uma sub-rotina que verifica se um ponto é interno a um polígono convexo.
  14. projeções paralela e perspectiva As duas figuras ao lado são projeções do mesmo cubo no mesmo plano. Qual é a projeção paralela? Qual é a projeção perspectiva? Explique.
  15. Uma projeção perspectiva pode ser definida em termos de um ponto e um plano, de tal forma que o plano tenha embutido um sistema de coordenadas de duas dimensões. Várias bibliotecas gráficas definem uma câmera virtual através de um ponto e dois vetores. O ponto indica onde a câmera está. Um dos vetores indica a direção "para onde a câmera está olhando" e o outro indica qual a direção "para cima" relativa à câmera. Invente uma forma de associar os elementos de tal câmera virtual aos elementos de uma projeção perspectiva. Explique essa associação que você inventou.
  16. Implemente um programa como este, que calcula uma projeção qualquer.
  17. códigos de Cohen-Sutherland O algoritmo de Cohen-Sutherland para o recorte de segmentos retas no plano, classifica uma extremidade de segmento de reta com um dos nove códigos apresentados ao lado (números no sistema binário). Explique quais são os casos em que os segmentos não precisam ser processados. Explique como identificar estes casos em um programa de computador.
  18. O algoritmo de Cyrus-Beck para o recorte paramétrico de retas foi aperfeiçoado por Liang e Barsky que simplesmente fizeram simplificações matemáticas para um caso especial. Cite qual foi este caso especial.
  19. Faça um programa que mostra uma roda gigante em funcionamento como o vídeo ao lado. Os modelos geométricos podem ser copiados de algum lugar. Este modelo contém uma roda gigante de raio 70 e espaço para 10 cadeiras. O arquivo contém três objetos, denominados support, wheel e chair.
  20. Explique qual a simplificação apresentada por Liang e Barsky em seu algoritmo de recorte (em relação ao algoritmo de Cyrus-Beck), deduzindo o cálculo da interseção de um segmento de reta (que vai do ponto P1 ao ponto P2) com um retângulo de recorte definido pelos limites (xmin, xmax, ymin, ymax).
  21. caso para o recorte paramétrico O segmento ao lado tem 4 interseções com os lados de uma área de recorte. Explique como o algoritmo do recorte paramétrico pode saber quais dos seis pontos envolvidos definem o segmento recortado (o segmento vai de P0 a P1).
  22. Quantos segmentos de elipse podem ser definidos pelo recorte de uma elipse em relação a um retângulo? Mostre graficamente.
  23. Implemente um programa que calcula o recorte de um segmento qualquer em relação a uma área de recorte qualquer (mas que esteja alinhada com o sistema de coordenadas).
  24. Alguns programas de computador definem cores em relação a valores intitulados RGB, alguns usam valores intitulados CMYK e alguns usam os dois. Explique o que esses valores significam, para exemplificar, cite quais seriam os valores (nos dois sistemas) para definir as cores preto e branco.
  25. Escreva um algoritmo em pseudo-código que desenha uma reta (num dispositivo matricial) entre dois pontos quaisquer.
  26. [ENADE 2017] Em computação gráfica, existem vários modelos de iluminação diferentes que expressam e controlam os fatores que determinam a cor de uma superfície em função de um determinado conjunto de luzes. Uma vez definido um modelo de iluminação, pode-se aplicar luz sobre as várias faces dos objetos de uma cena, processo denominado sombreamento.
    A figura à esquerda ilustra a aplicação de dois modelos de iluminação, a saber: o modelo de sombreamento constante (à esquerda) e o modelo de Phong (à direita).
    Em relação aos modelos de iluminação apresentados, avalie as afirmações a seguir.
    1. A aplicação do modelo de sombreamento constante causa na imagem um efeito visual denominado Bandas de Mach.
    2. Embora seja útil para gerar imagens realísticas, o modelo de Phong mostra-se pouco eficiente na apresentação das reflexões especulares.
    3. O modelo de sombreamento constante não é útil para gerar imagens realísticas porque ele dá destaque ao aspecto facetado da representação poliedral das superfícies.
    4. Para a utilização do modelo de Phong, é necessário supor que a fonte de luz localiza-se no infito.
    É correto apenas o que se afirma em
    1. I e II.
    2. I e III.
    3. II e IV.
    4. I, III e IV.
    5. II, III e IV.
  27. limitação z-buffer Na imagem ao lado, temos a vista frontal de um armário muito distante do observador, à frente de uma parede de tijolos brancos. Observa-se que em determinados pontos, o programa que gerou a imagem "achou" que a parede estava à frente do armário. A parede é representada por um único retângulo e toda a parte frontal do armário é representa por outro retângulo. Supondo que o programador deseja resolver este problema através da troca do algoritmo de determinação de superfícies visíveis, que características deve ter o novo algoritmo escolhido?
  28. Assinale como V ou F:
    1. ( ) A representação de reflexão especular num objeto serve para se conseguir efeitos de reflexo como por exemplo a imagem de uma pessoa sendo refletida na porta de um carro limpo e encerado.
    2. ( ) Sistemas computacionais que usam 32 bits para representar cores conseguem apresentar resultados bem mais realísticos que os sitemas que usam 24 bits.
    3. ( ) O tratamento de cores em computação gráfica geralmente não é abordado de forma explícita porque as cores podem ser vistas como intensidades diferentes de cores primárias. Desta forma, imagens coloridas são análogas às PeB.
    4. ( ) O sistema CMYK de representação de cores não pode ser usado em arquivos que armazenam imagens.
  29. Implemente um programa que recebe um vetor de faces e um vetor de vértices para calcular a normal de cada vértice.
  30. Escolha os pixels para desenhar o segmento entre (2, 1) e (7, 4), seguindo o algoritmo do ponto médio.
  31. Observe esse vídeo em que a tela de um celular foi filmada por uma câmera digital. Explique o aparecimento de linhas e curvas na imagem da tela do celular.
  32. [Poscomp 2005] Modelos gráficos, desenvolvidos para uso humano em displays convencionais devem ser representados em uma superfície bi-dimensional. As principais pistas perceptuais de profundidade que podem ser usadas para representar objetos tridimensionais em uma tela bidimensional são:
    1. tamanho e textura;
    2. contraste, claridade e brilho;
    3. interposição, sombra e paralaxe do movimento.
    Considerando-se as três afirmações (I), (II) e (III) acima, identifique a única alternativa válida:
    1. Somente as afirmações (I) e (II) estão corretas.
    2. Somente as afirmações (II) e (III) estão corretas.
    3. Somente as afirmações (I) e (III) estão corretas.
    4. As afirmações (I), (II) e (III) estão corretas.
    5. Somente a afirmação (III) está correta.
  33. [Poscomp 2006] Considere as questões abaixo:
    1. Um terminal raster apresentará o efeito "pisca-pisca" quando a cena for muito complexa.
    2. Uma célula de vizinhança 4 no algoritmo de boundary-fill sempre preenche a região interior completamente quando a borda da região de preenchimento tiver largura de 2 pixels.
    3. No algoritmo do ponto médio para traçado de círculos, se f(xM,yM) = r2 - x2 - y2 < 0, o ponto (xM,yM) é interior à circunferência.
    4. Em uma cena composta apenas de objetos convexos, a eliminação de superfícies ocultas restringe-se à remoção das faces posteriores (back faces).
    5. No mapeamento janela-viewport, mantendo-se a viewport fixa e aumentando-se o tamanho da janela provoca-se o efeito de zoom-in.
    1. Apenas I - II - III são verdadeiras
    2. Apenas II - IV - V são verdadeiras
    3. Todas são verdadeiras
    4. Todas são falsas
    5. Apenas I - II são verdadeiras