一、背景
原理CSDN原文链接
原理:由W. Randolph Franklin提出的,根据Jordan curve theorem,多边形将平面分为内外两个区域,假设待测点在多边形内部,从待测点引出一条射线必然会与多边形有至少一个交点。该射线与多边形第一次相交时将“冲出”多边形,第二次相交将“进入”多边形,依此类推,若射线与多边形有奇数个交点,则该点在多边形内部,反之则在外部。
PNPoly算法正是从待测点引出一条水平向右的射线,并计算与多边形的交点个数。
二、代码
代码CSDN原文链接
我主要在这里简单解释一下这里代码的意思,记录下自己理解的,希望对其他人也有帮助
'''为了方便解释,下面有图,我假设poly一共有5个点
'''
def is_pt_in_poly(pt, poly):#pt是被判断点,poly是多边形
'''判断点是否在多边形内部的(pn