2 Polygone verbinden

Fohnbit

Top Contributor
Hallo,

wie kann ich 2 Polygone verbinden, die sich überschneiden?
Poly1
Poly2

Ich habe zwar Beispiel für Konvexe Hüllen gefunden, die auch passen, aber:
Wenn sich das Polygon nach Innen "wölbt", erzeugt die Hüllenfunktion hier eine gerade Linie.

Die Strategie wäre:
1. Alle Punkte die nicht innerhalb des anderen Polygon liegen (das habe ich mit der Strahl Methode) behalten
2. Bei den beiden Linien, die sich gekreuzt haben, die Punkt die außerhalb liegen, verbinden

Danke!
 
Lege alle Punkte beider Plygone in einem Array ab . Finde dann den den kleinsten und groessten x und y
Wert - dann bekommst du ein Trapez wo es Punkte innerhalb und ausserhalb des trapez gibt.
Dann kannst du daruas eine konvexe Huelle berechnen - wie dir schon bekannt ist, die beide
Polygone umfasst.
 
Ko
Lege alle Punkte beider Plygone in einem Array ab . Finde dann den den kleinsten und groessten x und y
Wert - dann bekommst du ein Trapez wo es Punkte innerhalb und ausserhalb des trapez gibt.
Dann kannst du daruas eine konvexe Huelle berechnen - wie dir schon bekannt ist, die beide
Polygone umfasst.
Polygone sind nicht notwendig konvex, und bei der Vereinigung könnten Hohlräume entstehen. Ich schätze das Problem etwas schwieriger ein.
Vielleicht gibts hier bessere Vorschläge:

http://math.stackexchange.com/questions/15815/how-to-union-many-polygons-efficiently
http://stackoverflow.com/questions/2667748/how-do-i-combine-complex-polygons

oder hier der letzte Beitrag: http://stackoverflow.com/questions/11290437/merging-two-polygons-in-java
Dort wird Java Topology Suite: https://github.com/locationtech/jts vorgeschlagen.
 

Zurück
Oben