文章目录
- 一.算法效果
- 二.算法原理
- PNPoly算法
- 直线相交性判断
- 三.代码实现
一.算法效果
通过在PCL可视化界面上绘制2D封闭多边形来提取位于该封闭多边形内部或者外部的 的点,算法效果如下:
二.算法原理
PNPoly算法
2D多边形框选裁剪点云,实际上可以简化为点和多边形的位置问题,即判断点在多边形内部还是外部。 W. Randolph Franklin提出的PNPoly算法,仅用几行代码就完美的解决了上述问题。
PNPoly算法采用射线法判断点是否在多边形内部。假设待测点在多边形内部,从待测点引出一条水平向右的射线,则射线必然会与多边形有至少一个交点。该射线与多边形第一次相交时将“冲出”多边形,第二次相交将“进入”多边形,依此类推。若射线与多边形有奇数个交点,则该点在多边形内部,反之则在外部。
PNPoly算法核心代码如下:
int pnpoly(int nvert