上述文章给了我们一个高效的思路:在正六边形为原点且中心轴与y轴重合时,如何高效判断点是否在该正六边形内。本文的工作是将这种情况推广到正六边形处于任意位置。
数学推导
本文的所有的符号意义可以参考图。
初始条件
已知六个顶点坐标,六个顶点呈逆时针顺序,分别为 ( x 1 , y 1 ) , . . . , ( x 6 , y 6 ) (x_1,y_1), ..., (x_6,y_6) (x1,y1),...,(x6,y6)。现在要判断 ( x p , y p ) (x_p,y_p) (xp,yp)在不在正六边形内。
因为知道了六个顶点,因此:
- 中心点可求,即为 o ⃗ = ( x o , y o ) = ( x 2 + x 5 2 , y 2 + y 5 2 ) \vec{o} = (x_o, y_o) = (\frac{x_2+x_5}{2}, \frac{y_2+y_5}{2}) o=(xo,yo)=(2x2+x5,