pyhton包含的解释行为

问题描述 投票:1回答:1

您能解释匀称容器的行为吗?为什么下面的第一个结果(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
python shapely
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.