Isso pode ser básico para alguns de vocês, mas desculpe minha inexperiência com comp. geometria:
Dado um conjunto de círculos com centros para e cada um com raios . Também é dado um retângulo. Todos os objetos estão em um avião. Como verificar se todos os pontos dentro do retângulo (incluindo suas arestas) estão totalmente cobertos pelos círculos. Ou seja, cada ponto do retângulo está em pelo menos um dos círculos.
Alguém tem dicas? Atualmente, estou tentando com diagramas de voronoi.
Respostas:
Crie um diagrama Voronoi non centros de disco em O ( n logn ) Tempo. Intersectá-lo com o retângulo emO ( n ) Tempo.
Agora você tem um conjunto de formas convexas, portanto, o ponto mais distante do centro do disco dentro da célula é um vértice na célula. Calcular o ponto mais distante de cada célula pode ser feito emO( n ) Tempo. Se para todos eles, está dentror , o conjunto de discos cobre o retângulo.
UMAO( n logn) algoritmo.
fonte