❶ 判断点是否在多边形内部的方法
判断点是否在多边形内部的方法如下:
(1)面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。
(2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。
(3)光线投射法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部。
我们注意到,每次计算都涉及到相邻的两个点和待测试点,然后考虑两个问题:
被测试点的纵坐标testy是否在本次循环所测试的两个相邻点纵坐标范围之内?即verty[i]<testy < verty[j]
或者verty[j] <testy < verty[i]
2. 待测点test是否在i,j两点之间的连线之下?看不懂后半短if statement的朋友请自行在纸上写下i,j两点间的斜率公式,要用到一点初中解析几何和不等式的知识范畴,对广大码农来说小菜一碟。