- Punkt-in-Polygon-Test nach Jordan
-
Nach dem Jordanschen Kurvensatz teilen, vereinfacht gesagt, die Ränder eines Polygons den Datenraum in eine Innen- und eine Außenseite. Für viele Anwendungen ist es nötig, herauszufinden, ob ein Punkt innerhalb oder außerhalb eines Polygons liegt.
Inhaltsverzeichnis
Strahl-Methode
Bei der Strahl-Methode wird von dem zu testenden Punkt ein Strahl in eine beliebige Richtung versendet. Dabei wird gezählt, wie oft der Strahl die Kanten des Polygons schneidet. Es können drei Fälle unterschieden werden:
- eine gerade Anzahl von Schnittpunkten
- eine ungerade Anzahl von Schnittpunkten
- unendlich viele Schnittpunkte
Ist die Anzahl ungerade, liegt der Punkt innerhalb des Polygons, ist sie gerade, liegt er außerhalb. Im Fall von unendlich vielen Schnittpunkten verlief der Strahl direkt auf einer Kante. Der Test muss dann mit einem anderen Winkel wiederholt werden. Durch eine verfeinerter Betrachtung der relativen Lage des Testpunktes und der Kantenenden im kollinearen Fall kann jedoch auf solch eine Wiederholung mit einem anderen Winkel verzichtet werden. So zählt der folgende Pseudocode[1] entlang dem horizontal nach rechts gerichteten Strahl mit besonderer Beachtung von auf dem Strahl liegenden Ecken:
Funktion: PunktInPolygon Parameter: Ecken eines ebenen Polygons P, Testpunkt Q Rückgabe: + 1, wenn Q innerhalb P liegt; − 1, wenn außerhalb; 0, wenn auf P Setze P[0] = P[n] und t = − 1 Für Setze KreuzProdTest(Q,P[i],P[i + 1]) Ergebnis: t Funktion: KreuzProdTest Parameter: Punkte A = (xA,yA), B = (xB,yB), C = (xC,yC) Rückgabe: − 1, wenn der Strahl nach rechts von A die Kante schneidet (außer im oberen Endpunkt); 0, wenn A auf ; sonst + 1 Wenn yA = yB = yC Wenn oder Ergebnis: 0 sonst Ergebnis: + 1 Wenn yB > yC Vertausche B und C Wenn oder yA > yC Ergebnis: + 1 Setze Wenn Δ > 0 Ergebnis: + 1 sonst wenn Δ < 0 Ergebnis: − 1 sonst Ergebnis: 0
Anwendungsgebiete
Diese Methode findet vor allem in Geoinformationssystemen Anwendung.
Literatur
- Günter Hake, Dietmar Grünreich, Liqiu Meng: Kartographie Gruyter, Dezember 2001, 978-3110164046, S. 306ff.
- Norbert Bartelme: Geoinformatik: Modelle, Strukturen, Funktionen, März 2005, 3-540-20254-4, S. 103.
Einzelnachweise
Wikimedia Foundation.