Python Polygon.contains和Polygon.within之间有什么区别?
文档字符串显示:Python Polygon.contains和Polygon.within之间有什么区别?,python,polygon,shapely,Python,Polygon,Shapely,文档字符串显示: Polygon.contains如果几何体包含另一个,则返回True,否则返回False Polygon.within如果几何体在另一个几何体中,则返回True,否则返回False 它们有何不同?它们是反向关系:A包含B,而B在A中 >>> A.contains(B) True >>> B.within(A) True +----------------------------------+ |
Polygon.contains
如果几何体包含另一个,则返回True,否则返回False
Polygon.within
如果几何体在另一个几何体中,则返回True,否则返回False
它们有何不同?它们是反向关系:
A
包含B
,而B
在A
中
>>> A.contains(B)
True
>>> B.within(A)
True
+----------------------------------+
| |
| +----------+ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | B | |
| | | |
| +----------+ |
| |
| |
| A |
| |
+----------------------------------+
如果A与B重叠会发生什么?为什么有两个功能?一个还不够吗?我想两个都不是真的,因为两个形状都不完全在另一个之内。如果你的意思是A和B本质上是同一个形状,那么两者都是假的。从(emphasis mine)的手册中可以看出:“如果对象的内部包含另一个对象的边界和内部,并且它们的边界完全不接触,则返回True。”一个就足够了——您可以将(self,obj)中的
定义为简单的返回对象包含(self)
--但根据上下文,使用其中一种可能更具可读性。poly=Polygon(((0,0)、(0,2)、(2,2)、(2,0))
po=Point((1,1))
print poly.contains(po)
Trueprint poly.in(po)
false此处有所不同。下面的答案是:,还请记住,根据您当前正在执行的操作,有时从一个或另一个几何体进行检查更方便。e、 如果你用a,那么你会叫1,而如果你用b,那么你会叫逆。