判断一个坐标点是否在不规则多边形内部的算法

本文介绍了在GIS中如何使用PNPoly算法判断一个坐标点是否位于不规则多边形内部。通过计算坐标点与多边形边的关系,判断点在多边形内的奇偶性,从而确定点的位置。算法实现简洁,适用于坐标判断问题。
摘要由CSDN通过智能技术生成

GIS(地理信息管理系统)中,判断一个坐标是否在多边形内部是个经常要遇到的问题。乍听起来还挺复杂。根据W. Randolph Franklin 提出的PNPoly算法,只需区区几行代码就解决了这个问题。

 

假设多边形的坐标存放在一个数组里,首先我们需要取得该数组在横坐标和纵坐标的最大值和最小值,根据这四个点算出一个四边型,首先判断目标坐标点是否在这个四边型之内,如果在这个四边型之外,那可以跳过后面较为复杂的计算,直接返回false

 

if (p.x < minX || p.x > maxX || p.y < minY || p.y > maxY) {

     // 这个测试都过不了。。。直接返回false

}

接下来是核心算法部分:

 

int pnpoly (int nvert, float *vertx, float *verty, float testx, float testy) {

    int i, j, c = 0;

    for (i = 0, j = nvert-1; i < nvert; j 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值