给定一个表示二维多边形的点列表,如何确定该点是否在多边形内部。
请注意,多边形可以是凸多边形或凹多边形。您也可以对点的顺序做出任何假设。
给定一个表示二维多边形的点列表,如何确定该点是否在多边形内部。
请注意,多边形可以是凸多边形或凹多边形。您也可以对点的顺序做出任何假设。
m=(y1-y2)/(x1-x2)
,y=m*x(x-x1)+y1
),并查看您是否穿越了有效点的边界范围。给定这条线段的方程,确定您的线穿过这条线的位置,并确定它是否在这条线的范围内。选择多边形外的一个点。在您的点和外部点之间绘制一条线。如果该线与多边形相交奇数次,则在内部,否则在外部。零次交点也在外部。但是,这仅适用于非重叠多边形。
从您的点到多边形外部的任意一点取一条任意线(即在边界之外)。检查该线与多边形边缘相交的次数。如果值为奇数,则该点在内部。
在检查时,要注意通过顶点的线,您的测试可能会指示两个边缘交叉。