PNPoly算法(判断一个点是否在多边形内)——Python代码解释

PNPoly算法基于Jordan曲线定理,通过计算水平射线与多边形交点的奇偶性判断点是否在多边形内。本文介绍了算法背景并提供了Python代码解析,帮助理解算法原理。
摘要由CSDN通过智能技术生成

一、背景

原理CSDN原文链接
原理:由W. Randolph Franklin提出的,根据Jordan curve theorem,多边形将平面分为内外两个区域,假设待测点在多边形内部,从待测点引出一条射线必然会与多边形有至少一个交点。该射线与多边形第一次相交时将“冲出”多边形,第二次相交将“进入”多边形,依此类推,若射线与多边形有奇数个交点,则该点在多边形内部,反之则在外部。

PNPoly算法正是从待测点引出一条水平向右的射线,并计算与多边形的交点个数。

二、代码

代码CSDN原文链接
我主要在这里简单解释一下这里代码的意思,记录下自己理解的,希望对其他人也有帮助

'''为了方便解释,下面有图,我假设poly一共有5个点
'''
def is_pt_in_poly(pt, poly):#pt是被判断点,poly是多边形
    '''判断点是否在多边形内部的(pn
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值