两个多边形间的点如何确定它属于哪一个?

3

进入图片描述

我们需要使用哪种算法来确定红点属于区域1还是区域2?我的原始想法是使用连续点将多边形分成三角形,然后使用已知的算法来确定一个点是否属于这些三角形之一。但是,在图中显示了一个问题,P4、P5和P6是区域1中的点,但它们形成了区域2的一个三角形。

3个回答

4

从红点开始无限延伸一条射线,与任何多边形相交的次数。如果相交次数是偶数,则表示该点在多边形外。


2
您可以使用多边形填充算法的思想来实现。如果您知道多边形的顶点,可以通过红点引一条水平射线,并计算它穿过的顶点数。如果计数是偶数,则在多边形外部,否则在内部。
如果您想象从远左侧沿着该射线前进,第一次相交是进入多边形,第二次是离开它,第三次是再次进入...以此类推。因此,如果数字是奇数(1、3、5...),当您到达该点时,您在多边形内部,否则您在外部。

0

这里是想法 -

  1. 在红点右侧画一条水平线并将其延伸到无限远

  2. 计算该线与多边形边相交的次数。

  3. 如果交点数量为奇数或点位于边缘上,则该点在多边形内部

请参见检查点是否在多边形内部


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接