python - Python中如何判断一个多边形是否在另一个多边形内?

标签 python

我需要定义一个 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/

相关文章:

python - 如何停止在 Tkinter 中引发事件?

python - 如何从python中的给定日期获取工作日?

python - Pandas - 根据条件计算相关事件

python - 如何在matplotlib中设置极坐标图的大小?

python - 如何在 Python 中声明一个将实例作为参数的方法?

python - 我将如何使用南迁移将数据加载到 Django 的 auth_group 表中?

python - 为什么将 hg.Vec3() 向量传递给由它修改的 Python 函数?

python - 如何绘制我的数据框(python 和 pandas)

python - SQLite 中的多个唯一列

Python Unicode Ascii,序号不在范围内,令人沮丧的错误