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

Exercícios sobre Fundamentos Matemáticos para Computação Gráfica

1) Animação com Vetores

Utilizando a ImageClass, crie uma animação que mova uma imagem na tela.
Para realizar o exercício, abra o projeto da ImageClass e edite o arquivo ExemploDeManipulacaoDeImagens.cpp.

Nesta animação, o tempo de deslocamento da imagem, em segundos, deve ser definido pelo usuário, no início do programa. Coloque isto na função init.
Com isto, a imagem deve "atravessar" a tela no tempo especificado, independente do tamanho da janela ou do poder computacional da máquina.

O controle de tempo pode ser feito através da função Display, na qual o trecho de código a seguir calcula o tempo gasto desde a últiam vez que a tela foi redesenhada.

double AccumDeltaT=0;
// **********************************************************************
//  void display( void )
// **********************************************************************
void display( void )
{
    double dt = T.getDeltaT();
    AccumDeltaT += dt;
    if (AccumDeltaT > 3) // imprime o frame rate a cada 3 segundos
    {
        AccumDeltaT =0;
        cout << "FPS: " << 1.0/dt << endl;
    }


Neste código, o método
T.getDeltaT() determina quanto tempo se passou desde que a última chamada desta mesma função foi feita. A partir desta informação é possível definir o tamanho do deslocamento na tela a cada frame.

2) Determinação de Concavidade em Polígono

Para realizar este exercício, você pode utilizar este código fonte que contém algumas funções de manipulação de vetores.

Observando o polígono da figura a seguir e você verá que:

Img00003.gif (2793 bytes)

A partir disto crie uma rotina que seja capaz de determinar se um polígono é concavo ou convexo. 

int ClassificaPoligono(int num_vert, Vetor pontos[])
{
    // a rotina deve retornar 1 quando o polígono
    // for convexo e 0 quando for côncavo
}

3) Inclusão de ponto em Polígono Convexo

Para realizar este exercício, você pode utilizar este código fonte que contém algumas funções de manipulação de vetores.

Utilzando o produto vetorial, crie uma função que receba por parâmetro um polígono convexo e um ponto. A função deve determinar se o ponto está dentro ou fora do polígono.

Como se trata o caso de um ponto sobre uma das arestas do polígono?

4) Inclusão de ponto em Polígono Côncavo

Para realizar este exercício, você pode utilizar este código fonte que contém algumas funções de manipulação de vetores.

Crie uma função que receba por parâmetro um polígono côncavo e um ponto. A função deve determinar se o ponto está dentro ou fora do polígono.

FIM.