Gibt es einen rechnerisch sinnvollen Algorithmus zum Erzeugen einer Menge von Polygonen aus einer Menge von 2D-Punkten?

7

Gibt es einen bekannten / vorhandenen Algorithmus, um eine 2D-Leinwand, die mit willkürlich / zufällig verteilten Punkten bedeckt ist, vollständig in eine Reihe nicht überlappender Polygone zu unterteilen? Ein Beispiel für das Ergebnis, nach dem ich suche:Geben Sie hier die Bildbeschreibung ein

CaptainRad
quelle
1
Ist es wichtig, dass der Algorithmus mit der Menge der Punkte beginnt, oder ist es in Ordnung, wenn der Effekt auf andere Weise erzielt wird? (Ich kenne die Antwort in beiden Fällen nicht, aber es gibt keinen Grund, die Antwort
einzuschränken,
2
Sie sagen nicht, welcher Punkt das obige Diagramm erzeugen würde. Die Antwort von DW "Voronoi" ist großartig, es sei denn, Sie meinten, dass die gemeinsamen Eckpunkte die ursprünglich definierten Punkte waren.
Vynce

Antworten:

12

Möglicherweise suchen Sie nach einem Voronoi-Diagramm . Gegeben ein SatzS. von Punkten erstellt es eine Zelle pro Punkt, wobei die Zelle für Punkt p enthält alles, was näher ist p als zu jedem anderen Punkt in S.. Es gibt Algorithmen zum Berechnen eines Voronoi-Diagramms inÖ(nlgn) Zeit, wo n ist die Anzahl der Punkte in Ihrem Satz.

DW
quelle
13

Ja, es gibt sogar Algorithmen, die zusätzliche Einschränkungen erfüllen können. Es kann als Teilaufgabe während auftreten Netzgenerierung . Der Vanille-Algorithmus ist die Delaunay-Triangulation , die eng mit dem Voronoi-Diagramm verwandt ist (falls Sie sich fragen, warum DW der Meinung ist, dass das Voronoi-Diagramm Ihre Frage beantwortet).

Thomas Klimpel
quelle