基本流程和思想
- 首先根据已知给定多边形边界顶点集求得其最小x值Xmin、最小y值Ymin、最大x值Xmax和最大y值Ymax,根据这4个值可以确定包含该不规则多边形的水平放置的最小矩形,在此前提下,输入一个任意位置的测试点(x_test,y_test),判断该点是否在矩形中,如果不在这个矩形中,那一定不被包含在多边形里,如果在矩形里,执行下一步操作进行进一步的判断。判断的逻辑也很简单:如果Xmin<x_test<Xmax && Ymin<y_test<Ymax,则点(x_test,y_test)在矩形内,反之则不在。
- 进一步的判断方法
代码部分转自reference: 核心部分的代码来源