1、算法原理CGAL 内部判断点是否在简单多边形内,底层采用射线交叉算法(Ray Casting Algorithm):(1)从测试点向右水平发射一条无限长射线;(2)统计这条射线与多边形所有边的相交次数:相交次数为奇数:点在多边形内部ON_BOUNDED_SIDE;相交次数为偶数(含 0):点在多边形外部ON_UNBOUNDED_SIDE;(3)特殊判断:若测试点落在任意一条多边形边上 / 顶点上,直接返回ON_BOUNDARY。在CGAL中,使用三个枚举值代表位于多边形内部、多边形上、多边形外部:CGAL::ON_BOUNDED_SIDE // 点在多边形内部 CGAL::ON_BOUNDARY // 点落在多边形边/顶点上 CGAL::ON_UNBOUNDED_SIDE // 点在多边形外部2、原代码举例CGAL中自带判断一个点是否位于多边形内,该函数为bounded_side,下面为源代码举例如下。该代码基于CGAL5.5.2、VS2019编程。