Hallo,
ich habe hier eine Menge von zusammenhängenden Polygonen, wobei jedes Polygon aus einer Menge von Punkten besteht. Ich bin dabei, eine Klasse z uschreiben, die gemeinsame Kanten findet.
Ich habe mir Folgendes überlegt:
//Algorithmus
//1. beliebiges Startpolygon aus einer Startliste(ArrayList) von Polygonen auswählen, dessen Punkte in eine Liste(LinkedHashSet) einlesen
//2. Schnitt mit der Punktemenge des nächsten Polygons aus der Startlist bilden; falls nicht, das nächste Polygon aus der Startlist in einer zweiten Liste(unhandledPolygons) abspeichern
//3. Schnittemenge als PolygonPair(PolygonId, Point[]) abspeichern
//4. Differenzmengen vereinigen zu einem Polygonzug / einer Menge(LinkedHashSet), der dann den Umriss darstellt
//5. Diese Menge erneut als Startpolygon wählen und wieder bei 1. anfangen
//Wiederholung bis alle Polygone(Bsp.: List unhandledPolygon ist
//leer) betrachtet wurden
Ich möchte gern wissen, wie man das mit dem Abspeichern der Polygonen, die nicht benachbart sind mit dem aktuellen Polygon, am besten lösen kann.
Über Tipps würde ich mich freuen.
Grüße
blablaman
ich habe hier eine Menge von zusammenhängenden Polygonen, wobei jedes Polygon aus einer Menge von Punkten besteht. Ich bin dabei, eine Klasse z uschreiben, die gemeinsame Kanten findet.
Ich habe mir Folgendes überlegt:
//Algorithmus
//1. beliebiges Startpolygon aus einer Startliste(ArrayList) von Polygonen auswählen, dessen Punkte in eine Liste(LinkedHashSet) einlesen
//2. Schnitt mit der Punktemenge des nächsten Polygons aus der Startlist bilden; falls nicht, das nächste Polygon aus der Startlist in einer zweiten Liste(unhandledPolygons) abspeichern
//3. Schnittemenge als PolygonPair(PolygonId, Point[]) abspeichern
//4. Differenzmengen vereinigen zu einem Polygonzug / einer Menge(LinkedHashSet), der dann den Umriss darstellt
//5. Diese Menge erneut als Startpolygon wählen und wieder bei 1. anfangen
//Wiederholung bis alle Polygone(Bsp.: List unhandledPolygon ist
//leer) betrachtet wurden
Ich möchte gern wissen, wie man das mit dem Abspeichern der Polygonen, die nicht benachbart sind mit dem aktuellen Polygon, am besten lösen kann.
Über Tipps würde ich mich freuen.
Grüße
blablaman