Existe um algoritmo conhecido / existente para pegar uma tela 2D coberta em pontos distribuídos arbitrariamente / aleatoriamente e dividi-la inteiramente em um conjunto de polígonos não sobrepostos? Um exemplo do tipo de resultado que estou procurando:
algorithms
graphs
CaptainRad
fonte
fonte
Respostas:
Você pode estar procurando um diagrama de Voronoi . Dado um conjuntoS de pontos, ele cria uma célula por ponto, onde a célula para o ponto p contém tudo o que está mais perto p do que em qualquer outro ponto S . Existem algoritmos para calcular um diagrama de Voronoi noO(nlgn) hora, onde n é o número de pontos no seu conjunto.
fonte
Sim, existem até algoritmos capazes de satisfazer restrições adicionais. Pode ocorrer como uma subtarefa durante a geração da malha . O algoritmo de baunilha é a triangulação de Delaunay , que está intimamente relacionada ao diagrama de Voronoi (no caso de você se perguntar por que a DW acha que o diagrama de Voronoi responde à sua pergunta).
fonte