您能解释匀称容器的行为吗?为什么下面的第一个结果(Out [3])为假,而第二个结果(Out [4])为真
from shapely.geometry import Polygon, Point, MultiPoint
poly = Polygon([[0,0], [2, 0], [2, 2], [0, 2]])
poly.contains(MultiPoint([Point(2,2)]))
Out[3]: False
poly.contains(MultiPoint([Point(2,2), Point(1,1)]))
Out[4]: True
poly.contains(MultiPoint([Point(2,2), Point(1,1), Point(3,3)]))
Out[5]: False
引用object.contains(other)
上的文档:
如果
object.contains(other)
的任何点都不位于True
的外部并且other
的内部至少一个点位于object
的内部,则返回other
。>因此,事实上,一切都按预期进行。
1]选中object
时,该点不在poly.contains(MultiPoint([Point(2,2)]))
内部,而是在其边界上。因此,它返回poly
。
2]当您检查False
时,poly.contains(MultiPoint([Point(2,2), Point(1,1)]))
对象的任何点都不位于MultiPoint
的外部,并且在其内部只有一个点。这满足给定条件。
3]对于poly
情况,在poly.contains(MultiPoint([Point(2,2), Point(1,1), Point(3,3)]))
的外部有一个点,因此,结果是poly
。