算法文档:https://wrf.ecse.rpi.edu//Research/Short_Notes/pnpoly.html
(该知识点是阿里模拟笔试,配送区域问题的考点)
(1)先判断点在不在多边形的内部,如果在的话,问题很简单(后面有过程)
(2)如果不在多边形的内部(超过配送区域)
那么计算点到多边形的所有的边的距离(直线距离),取点到所有边的最短的距离的最小值。
1、如果点是情况1,len就是最短的距离
2、如果投影在外围,那么最短距离就是点到顶点的距离,求配送点到每个多边形顶点的距离(取其中的最小值)
综上所述:如果在外围,我们求点到所有边的距离,和点到所有顶点的距离,然后取最小值即可。
判断点在多边形的哪里:
如果一个点在多边形的内部,那么从这个点引一条射线,那么与多