Pós-Graduação em Ciência da Computação
Computação Gráfica
Trabalho I - 2019/1
Data de Entrega: 07/maio/2019
Prof. Márcio Sarroglia Pinho

Objetivo
Analisar algoritmos de cálculo de inclusão de ponto em polígonos.



Descrição

Criar um programa que deverá ler um arquivo com a descrição de uma malha de polígonos 2D e exibi-lo na tela. Esta malha deve conter um número de polígonos tal que o algoritmo básico, descrito abaixo, leve pelo menos 5 segundos para executar.
O programa deverá executar, pelo menos, os seguintes algoritmos:
Para demostrar o funcionamento correto do programa, deve ser possível indicar um ponto sobre a malha de polígons e o program deve mostrar qual dos polígonos contém o ponto indicado.

Ao final, o programa deverá gerar um relatório do comportamento dos algoritmos com várias quantidades de polígonos e pontos. Neste relatório devem estar presentes informações a respeito de tempo de processamento em cada fase dos algoritmos e de seu consumo de memória.


Sugestões de Malhas de Polígonos

Mapas

Uma sugestão para dados de entrada são mapas no formato shapefile, definido pela ESRI para dados vetoriais simples com atributos, e consiste de três arquivos para cada tipo de informação:
Para facilitar a leitura dos dados, pode ser usada a biblioteca Shapefile C Library, disponível neste link local. No arquivo shpdump.c há um exemplo do uso da biblioteca. A documentação completa da biblioteca está em seu site oficial no endereço  http://shapelib.maptools.org.
Exemplos de mapas podem ser obtidos no final desta página.
A partir da exibição dos mapas, o programa deverá, quando for comandado pelo usuário, sortear uma grande quantidade de pontos sobre a malha de polígonos e determinar dentro de que polígonos está cada ponto.


Exemplos de mapas

    http://www.fepam.rs.gov.br/biblioteca/geo/bases_geo.asp
    ibge.zip
    dados_geo.zip

ArcExplorer: Visualizador de mapas no formato shapefile.


Malha de Triângulos

Outra possibilidade é gerar uma malha de triângulos a partir de um conjunto de pontos aleatórios distribuídos no plano.
Exemplos destas malhas podem ser obtidas neste arquivo.

Além disto, você pode usar os programas que estão nos links a seguir para gerar suas próprias malhas.

Geradores de Malha de Polígonos

CompGeom_in_C.zip

Triangularization.zip

http://www.cs.cornell.edu/home/chew/Delaunay.html

http://www.cs.cmu.edu/~quake/triangle.html

http://www.robertschneiders.de/meshgeneration/software.html

http://www.codeproject.com/Articles/492435/Delaunay-Triangulation-For-Fast-Mesh-Generation



Links úteis

Tutorial de OpenGL (Profa. Isabel Manssour)
Fórmulas de cálculo de interseção entre segmentos de reta
Exemplo de programa em OpenGL