Computação Gráfica
Prof. Márcio Sarroglia Pinho

Exercícios


Visualização 3D

 

 

            glTranslatef(-5.00,  10.00,  0.00);
            glutSolidCube(3);
            glTranslatef(5.00,  10.00,  0.00);
            glutSolidCube(3);


         
   Desenhe as vistas ortográficas(frontal, lateral direita e superior) da cena representada por este programa. Considere o observador na posição (0,0,10) e o alvo na oriegem do sistema de coordenadas;


Modelos de Iluminação(de Reflexão)

·      Imagine um cubo (0,0,0)-(10,10,10), uma luz pontual colocada em (15, 5, 8) e um observador em (15,5,0). Calcule a intensidade da iluminação especular no ponto A:(10, 5, 5).

o   Vídeo com a resolução: https://youtu.be/ADH0PZ7hvt8

 

 


Remoção de Faces Ocultas

 

 

glColor3f(0,1,0);
glPushMatrix();
    glTranslatef(10.00,  15.00,  -15.00);
    glutSolidCube(10);
glPopMatrix();

glColor3f(0,0,1);
glPushMatrix();
    glTranslatef(15.00,  10.00,  -10.00);
    glutSolidCube(10);
glPopMatrix();



                Desenhe as vistas superior e frontal.
                Execute o algoritmo de Zbuffer nos polígonos que representam, respectivamente, a face lateral esquerda do cubo azul e frontal do cubo verde.

 

 

 

Face 1

Face 2

A: 0, -10, 15

E:10, -5, 10

B: 0, 10, 15

F:10, 5, 10

C: 20, 10, 15

G: 30, 5, 25

D: 20, -10, 15

H: 30, -5, 25

   


Ray Tracing

Dada a cena abaixo,  determine quais dos 3 pontos marcados sobre o plano de projeção é um ponto de sombra.


Técnicas de Culling

                       double CalculaAngulo (Ponto P1, Ponto P2);

          Crie uma rotina capaz de imprimir(em ordem) os pontos que formam convex Hull dado um vetor de pontos: Ponto PONTOS[100];

void Convex (Ponto Vetor);

E outra capaz de determinar se um ponto está dentro de um quadrilátero
    int DentroDoQuadrilatero(Ponto P, Ponto Quadri[4]);
Crie uma rotina (Quick) que seria chamada antes da Convex, com o objetivo de aplicar o algoritmo de QUICK HULL:

    Quick (VetorAntigo, VetorNovo);
    Convex (VetorNovo);