判断点是否在多边形中是计算几何中一个非常基本但是十分重要的算法。
下面是几个比较基本的方法:
(1)面积法:将这个点与多边形的所有顶点连线,将所形成的所有三角形面和求和,如果和多边形面积相等则点在多边形内部
(2)夹角法:将这个点与多边形的所有顶点连线,如果夹角和为360°则点在多边形内部
(3)射线法:以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到了多边形的内部,遇到第二个交点的时候,离开了多边形,……所以很容易看出当L和多边形的交点数目C是奇数的时候,P在多边形内,是偶数的话P在多边形外。
解释一下射线法,如下图所示,在点左边有5个交点,奇数个,所以点在多边形内(其实向左向右做射线都是一样的)