两个多边形之间的点如何找到它属于哪个?

时间:2017-04-04 19:03:08

标签: algorithm polygon shapes area

enter image description here

使用什么算法,以便我们可以确定红点是属于Area1还是Area2。 我最初的想法是使用连续点将多边形划分为三角形,然后使用已知算法确定一个点是否属于这些三角形中的一个,但是图中显示了一个问题.p4 p5 p6是区域1中的点但是它们是在区域2中制作一个三角形。

3 个答案:

答案 0 :(得分:4)

继续从红点到任何方向的光线。计算这种射线与任何多边形的相互作用。甚至交点计数表明该点位于多边形

之外

答案 1 :(得分:2)

您可以使用多边形填充算法的想法。如果您知道多边形的顶点,则可以在红点处放置水平光线并计算它相交的顶点。如果计数是偶数,则它在外面,否则它在里面。

如果您想象沿着该光线从最左边进入,第一个交叉点进入多边形,第二个交叉点离开它,第三个交叉点再次进入......依此类推。因此,如果数字是奇数(1,3,5,...),当你点到点时你就在多边形内部,否则你就在外面。

答案 2 :(得分:0)

这是一个想法 -

  1. 在红点右侧绘制一条水平线并将其延伸至无穷大

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

  3. 如果交点计数为奇数或者,则点在多边形内 点位于边缘

  4. 请参阅Check if a point lies inside or outside a polygon