Geometry 有人能解释一下多边形中点的光线投射算法,即包容检查吗?

Geometry 有人能解释一下多边形中点的光线投射算法,即包容检查吗?,geometry,topology,point-in-polygon,brep,Geometry,Topology,Point In Polygon,Brep,考虑一个有两个环的多边形,即外环和内环,如随附的图片所示。有人能给我解释一下光线投射算法在这种情况下是如何工作的吗。?如果可能的话,请将一些图像/图纸作为答案,以便更好地可视化和理解 想象一个点沿直线从无穷远处移动到目标点(也适用于曲线) 无穷远处的点位于形状外部。只要满足轮廓,就从外部切换到内部或相反。此规则定义内部和外部点。在给定的情况下,圆角矩形的内侧不包括内圆 从算法上讲,计算定义形状的线段与目标的半边线的交点。请看,是否有孔并不重要。交点计数的LSB将告诉您是在多边形内部还是外部。唯

考虑一个有两个环的多边形,即外环和内环,如随附的图片所示。有人能给我解释一下光线投射算法在这种情况下是如何工作的吗。?如果可能的话,请将一些图像/图纸作为答案,以便更好地可视化和理解


想象一个点沿直线从无穷远处移动到目标点(也适用于曲线)

无穷远处的点位于形状外部。只要满足轮廓,就从外部切换到内部或相反。此规则定义内部和外部点。在给定的情况下,圆角矩形的内侧不包括内圆


从算法上讲,计算定义形状的线段与目标的半边线的交点。

请看,是否有孔并不重要。交点计数的LSB将告诉您是在多边形内部还是外部。唯一的问题是,如果光线在单点上接触边,而不是穿过边。你需要检测这些东西,要么不数数,要么数两次。。。或者改变光线方向,这样就不会发生。我在一些文章中读到过,并且在某些情况下,我个人观察到这种方法在不规则形状的多段线上会失败,也就是说,如果光线穿过一次,然后只“接触”外部的一个点,形成类似“切线”的东西。或者,如果多段线与自身相交,而光线正好穿过这样一个相交点,该怎么办。或者,若光线穿过多段线的某个部分,而该多段线的两条直线正好在彼此的顶部绘制。在这3个例子中,上面的逻辑返回了错误的结果。有人能为我上面的评论中提到的情况提出解决方案吗。如果光线投射算法无法处理这些问题,请建议其他可能的方法来解决上述问题。“返回错误结果”:前提是您定义了这种情况下的预期结果。请注意,在实际应用中,这些点形成了一个零集度量值,努力处理它们是没有意义的(顺便说一句,光线投射返回的结果非常一致)。谢谢Yves。!PFA图像中有“e”类多边形。请仔细看一看,并帮助我得到正确的结果点包容检查在这种类型的多边形。