2014-02-06 2 views
8

Я ищу способ определить, находится ли конкретная точка внутри многоугольника, учитывая его вершины, используя NumPy/SciPy.Точка внутри многоугольника

Я не смог найти ни одного онлайн. Есть ли способ сделать это с помощью NumPy/SciPy?

+0

Вы уже задали этот вопрос [здесь] (http://stackoverflow.com/q/21566610/1461210). Если вас не устраивает ответ, который я вам дал, вы должны не понимать его и комментировать, чтобы объяснить, почему, а не открывать другой вопрос. –

+0

Не здравый вопрос, последний был об обрезке, это о точке в полигоне. –

+0

Основной базовый вопрос одинаков - ваша область «crop» - это многоугольник, вы хотите индексировать точки, попадающие в многоугольник. Ответ и советник, и мой вопрос, адресованы мне. –

ответ

13

Вы считаете Shapely? Просто создайте Polygon и проверьте, есть ли многоугольник contains.

>>> 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

Хммм, интересно! Хотя я надеялся, что numpy/scipy будет что-то делать, а не устанавливать новый модуль. Кстати: Вы знаете какие-либо инструменты, которые позволили бы мне рисовать вершины на изображении? –

+0

@Highschooler Я бы использовал изображение в качестве backgroun на фигуре matplotlib, а затем использовал [обработку событий] (http://matplotlib.org/users/event_handling.html) для выбора очков. – arkottke

+0

Ужасно, к сожалению, не поставляется с pip 'pip installs shapely' :( – user1767754

Смежные вопросы