Python shapely Polygon.contains(Point) 没有给出正确答案(我认为)
Python shapely Polygon.contains(Point) not giving correct answer (I think)
from shapely.geometry import Polygon, Point
p = Point(2,2)
poly = Polygon((0,0), (0,5), (5,0), (5,5))
print poly.contains(p)
这会打印 False
,尽管我很确定 (2,2)
在长度 5
的正方形范围内。或者也许我只是不知道 contains 方法是如何工作的。 p.within(poly)
也 return False
。我是在正确使用 Polygon
class 还是我真的不擅长几何?
多边形应构造为
Polygon([(0,0), (5,0), (5,5), (0,5)])
在您的例子中,序列 (0,0), (0,5), (5,0), (5,5)
指定 "letter Z" 顺时针旋转 90 度,而不是感兴趣的正方形的边界。事实上,它甚至不会产生有效的多边形,即
>>> P=Polygon([(0,0), (0,5), (5,0), (5,5)])
>>> P.area
0.0
>>> P.is_valid
Self-intersection at or near point 2.5 2.5
False
from shapely.geometry import Polygon, Point
p = Point(2,2)
poly = Polygon((0,0), (0,5), (5,0), (5,5))
print poly.contains(p)
这会打印 False
,尽管我很确定 (2,2)
在长度 5
的正方形范围内。或者也许我只是不知道 contains 方法是如何工作的。 p.within(poly)
也 return False
。我是在正确使用 Polygon
class 还是我真的不擅长几何?
多边形应构造为
Polygon([(0,0), (5,0), (5,5), (0,5)])
在您的例子中,序列 (0,0), (0,5), (5,0), (5,5)
指定 "letter Z" 顺时针旋转 90 度,而不是感兴趣的正方形的边界。事实上,它甚至不会产生有效的多边形,即
>>> P=Polygon([(0,0), (0,5), (5,0), (5,5)])
>>> P.area
0.0
>>> P.is_valid
Self-intersection at or near point 2.5 2.5
False