我需要定义一个 Python 函数,它可以检测凸多边形(多边形 a)是否在另一个多边形(多边形 b)内。
给出了每个多边形的顶点。
(仅使用基本库以及 numpy)
人类很容易用眼睛做出判断。但我不知道如何在 Python 中描述该方法。我试图检查 lib 的一些源代码(如 shapely),但无法理解它是如何工作的。
'''
def isinside(polya, polyb):
#Polya: [(x1,y1), (x2,y2), (x3,y3),...]
#Polyb: [(x1,y1), (x2,y2), (x3,y3),...]
#if polya inside polyb
return True
# else
return False
'''
有人可以提供一些建议或显示一些代码吗?谢谢!
最佳答案
您可以使用 shapely
库为此。它会像
from shapely.geometry import Polygon
polya = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)])
polyb = Polygon([(0.5, 0.5), (0.5, 0.8), (0.8, 0.8), (0.8, 0.5)])
polya.contains(polyb)
# True
这个模块对大多数几何相关的操作有更多的了解,所以请引用 their User Manual进一步的例子和详尽的解释。
关于python - Python中如何判断一个多边形是否在另一个多边形内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840924/