Skip to content

Latest commit

 

History

History
71 lines (47 loc) · 1.83 KB

README.md

File metadata and controls

71 lines (47 loc) · 1.83 KB

Trabalho 2 - Spatial Hashing

Visualização da intersecção entre segmentos

Compilação

Em ambiente MSYS2:

$ make

Não configurado em outros ambientes.

Contratos

Contrato: distribuição de segmentos

  • Definir área de distribuição
  • Distribuir segmentos com tamanho e ângulo aleatório

Contrato: intersecção

  • Implementar intersecção de segmento com segmento
  • Implementar detecção de segmentos colineares
  • Buscar intersecção de todos com todos segmentos
  • Buscar intersecção dos segmentos usando spatial hash

Contrato: spatial hash

  • Hash de linha resultando em múltiplas células
  • Anotar de uso e presença em células
  • Distribuir da tabela crua como matriz e índices finais
  • Armazenar dos objetos na tabela
  • Estimativa exata do tamanho da tabela

Contrato: visualização

  • Mostrar segmentos
  • Mostrar células do spatial hash
  • Mostrar pontos de intersecção
  • Mostrar resultados parcialmente
  • Variar visualização parcial conforme parâmetros
  • Zoom
  • Aceitar redimensionamento da janela durante execução

Contrato: eficiência

  • Medir tempo de execução
  • Desconsiderar tempo de renderização
  • Desconsiderar tempo de geração de segmentos
  • Somar opcionalmente tempo do hash espacial

Contrato: parametrização

  • Parametrizar quantidade de segmentos em tempo de execução
  • Parametrizar tamanho das células

Contrato: controles

  • Execução por passos
  • Regulagem automática de passos
  • Pausa da execução

Contrato: estatísticas

  • Saída consumível por gnuplot

Restrições

  • Não ultrapassar 1800x1000 pixels o tamanho da tela
  • Quantidade de segmentos na escala de centenas de milhares e milhões
  • Manter 200 FPS, se possível