Diskussion:Punkt-in-Polygon-Test nach Jordan

Letzter Kommentar: vor 1 Monat von 2001:4090:A240:81E5:D250:99FF:FEA5:1047 in Abschnitt Null ist auch eine gerade Zahl

falsch?

Bearbeiten

Ist die Anzahl gerade, liegt der Punkt innerhalb des Polygons, ist sie ungerade, liegt er außerhalb. stimmt das? --El. 14:38, 31. Aug. 2010 (CEST)Beantworten

Kanonen auf Spatzen

Bearbeiten

Ehrlich gesagt ist der Jordansche Kurvensatz eine ziemlich dicke Kanone, wenn man nur den den Spezialfall des Polygons braucht.--Hagman 22:48, 16. Feb. 2011 (CET)Beantworten

Wie darf ich das auffassen? :) Bin gerne zu Anregungen bereit -- Meror (13:18, 17. Feb. 2011 (CET), Datum/Uhrzeit nachträglich eingefügt, siehe Hilfe:Signatur)Beantworten
Der Beweis des Jordanschen Kurvensatzes im allgemeinen Fall einer einfach geschlossenen stetigen ebenen Kurve ist alles andere als trivial. Obendrein bezweifle ich jetzt im Moment mal, dass es im allgemeinen Fall immer eine Richtung gibt, in der nur endlich viele Randschnitte existieren.Stimmt wohl doch, glaubich Der Beweis derselben Aussagen für einfach geschlossene Polygonzüge ist hingegen eher anspruchslos (obwohl auch da nicht so trivial, wie Jordan selbst wohl glaubte, vgl. http://compgeom.cs.uiuc.edu/~jeffe/teaching/comptop/notes/jordan-polygon-theorem.pdf ).--Hagman 19:51, 17. Feb. 2011 (CET)Beantworten

Es gibt verständlichere Algorithmen

Bearbeiten
int pnpoly(int npol, float *xp, float *yp, float x, float y){
    int i, j, c = 0;
    for (i = 0, j = npol-1; i < npol; j = i++) {
        if (((yp[i]<=y && y<yp[j]) || (yp[j]<=y && y<yp[i])) &&
            (x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))
            c = !c;
    }
    return c;
}

Die Funktion gibt 1 zurück, falls der Punkt innen liegt, 0 falls er außen liegt und 0 oder 1 falls er auf dem Rand liegt. Quelle: comp.graphics.algorithms (Frage 2.03)

Als Beispiel scheint mir das wesentlich verständlicher zu sein als der aktuelle Pseudocode.--G8w (Diskussion) 10:23, 19. Jun. 2015 (CEST)Beantworten

Über Übersichtlichkeit kann man streiten. Fakt ist aber, dass dies hier im Gegensatz zu dem Implementierungsbeispiel im Artikel funktioniert. Hat den C#-Code mal jemand ausprobiert? Da kommt "irgendwas" raus, nur nicht, ob der Punkt im Polygon liegt. --77.21.132.247 15:09, 12. Mär. 2022 (CET)Beantworten
Der Code im Beispiel auf der Seite funktioniert wirklich nicht.
Das o.g. Codebeispiel ist aber leider auch nicht ohne Probleme allgemein anwendbar: Wenn yp[j]==yp[i] erhält man eine unschöne Nulldivision. --46.114.39.71 13:37, 17. Apr. 2022 (CEST)Beantworten
die division nach links auf x multiplizieren! Aber dann geht es trotzdem nicht, die y werte müssen nach Größe sortiert sein, dann geht es. --91.4.59.97 18:30, 11. Jul. 2024 (CEST)Beantworten

Null ist auch eine gerade Zahl

Bearbeiten

Bei "Strahl-Methode" wird "kein Schnittpunkt" als eigenständiger Fall behandelt. Das ist unnötig kompliziert, da 0 eine gerade Zahl ist. (nicht signierter Beitrag von 92.201.56.55 (Diskussion) 10:39, 15. Aug. 2019 (CEST))Beantworten

Dem schließe ich mich an. Das wollte ich auch gerade schreiben! --2001:4090:A240:81E5:D250:99FF:FEA5:1047 11:21, 6. Okt. 2024 (CEST)Beantworten