Nehmen wir an, ich habe eine feste Anzahl (X) von Punkten, z. Koordinaten innerhalb einer gegebenen Ebene (ich denke, Sie können es eine 2-D Punktwolke nennen).So partitionieren Sie eine Ebene
Diese Punkte sollten in Y Polygone aufgeteilt werden, wobei Y < X. Die Polygone sollten nicht überlappen. Es wäre wunderbar, wenn die Polygone konvex wären (wie ein Voronoi-Diagramm).
Stellen Sie sich vor Orte wie Länder bilden. Zum Beispiel habe ich 12 Punkte und möchte 3 Polygone mit jeweils 4 Punkten erstellen.
Ich dachte über das Erstellen eines Gitters, das die Punkte abdeckt. Dann iteriere über die Punkte und weise sie den nächsten Gitterzellen zu.
Vielleicht vermisse ich das Offensichtliche? Ich bin mir sicher, dass es bessere Lösungen gibt.
Danke, Daniel
Ich habe gerade an optimization (kmeans++) .maybe dies bessere Ergebnisse bringen wird ..
mit einem Gitter, könnten Sie leere Zellen erhalten, oder alle Punkte in einer Zelle nützlich sein. Mit einem Radial-Array können Sie dies mit einer Lösung bewältigen, die schnell und einfach zu implementieren ist. –