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

Trabalho I - Operações Boolenas entre Polígonos

Este trabalho deverá ser desenvolvido forma individual
Data da entrega: 28/04/2021

Objetivo

O objetivo deste trabalho é criar um programa que realize operações boolenas de união, interserção e diferença entre polígonos, avaliando o desempenho de algoritmos de aceleração de colisão

Os algoritmos para a execução das operações boolenas estão descritos neste documento e em vídeos disponíveis no Moodle.



Descrição

O programa deverá ler dois polígonos descritos em arquivos conforme o programa-exemplo apresentado a seguir. Para a leitura, o usuário deve informar os nomes dos dois arquivos. Para Java, você pode usar como base o programas, mas ele carrega e exibe apenas um polígono por vez:

Na forma atual, os programas em C++ e Python carregam os arquivos com objetos e exibe ambos na tela, conforme a figura a seguir.


Figura - Programa-Exemplo que Carrega os Polígonos

Para o trabalho, estes polígonos deverão ser substituídos por outros com pelo menos 1000 vértices cada um. Um exemplo destes polígonos pode ser visto aqui.

A partir disto, os dois polígonos (A e B) devem ser exibidos na tela, em cores distintas. A exibição deve ser feita de tal forma que os polígonos apareçam na parte superiro da janela.

A seguir, o programa deve permitir que o usuário ative as seguintes operações booleanas.
Após a execução destas operações, o programa deve exibir na parte inferior da janela os polígonos resultantes.  A figura a seguir exemplifica a execução das operações, considerando A e B como dois retângulos.



Além de exibir os 4 polígonos na tela, o programa deverá salvar automaticamente cada um deles em arquivos distintos, no mesmo formato do polígonos de entrada e permitir que o usuário reinicie o processo de realização das operações boolenas, escolhendo quaisquer outros dois polígonos para tanto.

Teste com algoritmos de Aceleração de Colisão

Para a realização dos testes de inclusão de ponto e de cálculo de interseção, devem ser testados os seguintes métodos de aceleração:
Ao final, o programa deverá gerar um relatório do comportamento dos algoritmos. Neste relatório devem estar presentes informações a respeito das fases inclusão e interseção. Para cada algoritmo de aceleração, devem ser informado o número de vezes que cada um foi de fato executado.

Exemplos de Polígonos

Um exemplo de polígono que pode ser usado neste trabalho é o mapa do estado do RS, como no exemplo da figura a seguir.

Figura - Exemplo de Polígono

Para obter novos mapas, você pode utiizar ferramentas que manipulam o formato Shape File, como:

Observações

Entrega

FIM.