判断点是否在多边形的围栏内

从这个点做一条射线,任意方向都行,计算它跟多边形边界的交点个数,如果交点个数为奇数,那么点在多边形内部,否则点在多边形外。

奇数个交点

该点在多边形内

1722438652525.png

偶数个交点

该点在多边形外

1722438672846.png

射线与顶点相交的情况

情况1

相交的顶点相连的两条边分别在射线的两侧,这种情况算 相交

1722438703868.png

射线经过顶点D,与顶点D相连的两个点是A和C,A点在射线的上面,C点在射线的下面,这种算相交

情况2

相交的顶点相连的两条边都在射线的同一侧,这种情况认为 不相交

1722438743099.png

射线经过顶点D,与顶点D相连的两个点事A和C,A和C都在射线的下面(同一侧),这种不算相交

java代码实现

算了去找别人写的吧。。。

1