Dies mag für einige von Ihnen grundlegend sein, aber entschuldigen Sie meine Unerfahrenheit mit comp. Geometrie:
Gegeben eine Menge von Kreisen mit Zentren für 1 \ leq i \ leq n und jeweils mit Radien r . Auch ein Rechteck gegeben. Alle Objekte befinden sich in einer Ebene. So überprüfen Sie, ob jeder Punkt innerhalb des Rechtecks (einschließlich seiner Kanten) vollständig von den Kreisen bedeckt ist. Das heißt, jeder Punkt im Rechteck lag auf mindestens einem der Kreise.
Hat jemand Hinweise? Ich versuche gerade mit Voronoi-Diagrammen.
Antworten:
Erstellen Sie in ein Voronoi-Diagramm auf den Plattenzentren . Schneiden Sie es mit dem Rechteck in Zeit.n O(nlogn) O(n)
Jetzt haben Sie eine Reihe konvexer Formen, sodass der am weitesten von der Mitte der Scheibe entfernte Punkt in der Zelle ein Scheitelpunkt auf der Zelle ist. Die Berechnung des am weitesten entfernten Punkts für jede Zelle kann in . Wenn es für alle innerhalb von , deckt der Satz von Datenträgern das Rechteck ab.O(n) r
Ein -Algorithmus.O(nlogn)
quelle