2014-02-06 17 views
8

Ich bin auf der Suche nach einer Möglichkeit zu bestimmen, ob ein bestimmter Punkt innerhalb eines Polygons mit seinen Scheitelpunkten NumPy/SciPy ist.Punkt innerhalb Polygon

Ich konnte keine online finden. Gibt es überhaupt eine Möglichkeit, dies mit NumPy/SciPy zu tun?

+0

Sie haben diese Frage bereits [hier] (http://stackoverflow.com/q/21566610/1461210) gestellt. Wenn du mit der Antwort, die ich dir gegeben habe, nicht zufrieden bist, solltest du es nicht akzeptieren und kommentieren, um zu erklären, warum, anstatt eine andere Frage zu stellen. –

+0

Nicht die vernünftige Frage, die letzte war über das Zuschneiden das ist über Punkt im Polygon. –

+0

Die zugrunde liegende grundlegende Frage ist die gleiche - Ihre 'Crop'-Region ist ein Polygon, in dem Sie Punkte indexieren möchten, die in das Polygon fallen. Sowohl die Antwort von Arkottke als auch meine beziehen sich darauf. –

Antwort

13

Haben Sie in Betracht gezogen ? Erstellen Sie einfach einen Polygon und überprüfen Sie, ob das Polygon contains ein Punkt ist.

>>> from shapely.geometry import Point 
>>> from shapely.geometry.polygon import Polygon 

>>> point = Point(0.5, 0.5) 
>>> polygon = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]) 
>>> polygon.contains(point) 
True 
>>> point2 = Point((10, 10)) 
>>> polygon.contains(point2) 
False 
+0

Hmmm, interessant! Obwohl ich gehofft hatte, dass numpy/scipy etwas zu tun haben würde, anstatt ein neues Modul zu installieren. Übrigens: Kennen Sie irgendwelche Werkzeuge, mit denen ich Vertices auf einem Bild zeichnen könnte? –

+0

@Highschooler Ich würde das Bild als Backgroun auf Matplotlib Abbildung verwenden und dann die [Ereignisbehandlung] (http://matplotlib.org/users/event_handling.html) verwenden, um Punkte auszuwählen. – arkottke

+0

Formschön kommt leider nicht mit Pip 'pip installiert formschön' :( – user1767754

Verwandte Themen