从这个点做一条射线,任意方向都行,计算它跟多边形边界的交点个数,如果交点个数为奇数,那么点在多边形内部,否则点在多边形外。
奇数个交点
该点在多边形内
偶数个交点
该点在多边形外
射线与顶点相交的情况
情况1
相交的顶点相连的两条边分别在射线的两侧,这种情况算 相交
射线经过顶点D,与顶点D相连的两个点是A和C,A点在射线的上面,C点在射线的下面,这种算相交
情况2
相交的顶点相连的两条边都在射线的同一侧,这种情况认为 不相交
射线经过顶点D,与顶点D相连的两个点事A和C,A和C都在射线的下面(同一侧),这种不算相交
java代码实现
算了去找别人写的吧。。。