## js判断多边形是顺时针绘制还是逆时针绘制
方法:循环遍历多边形的坐标选取X或者Y值中最大或者最小的点,这个点必然是凸点(**本文以选取X最大为例**),*记住必须要选择多边形的凸点,选择凹的的话对多余顺时针的多边形会不成立的*
**原理:**
然后根据三个点组成的两个向量乘积判断,
设 p1=(x1,y1), p2=(x2,y2), p3=(x3,y3)
求向量 p12=(x2-x1,y2-y1) p23=(x3-x2,y3-y2)
则当 p12 与 p23 的叉乘(向量积) p12 x p23 = (x2-x1)*(y3-y2)-(y2-y1)*(x3-x2)
结果:
为正时,p1-p2-p3 路径的走向为逆时针,
为负时,p1-p2-p3 走向为顺时针,
为零时,p1-p2-p3 所走的方向不变,亦即三点在一直线上。
具体代码:
/**
* @param coordsArr:多边形坐标数组(三维数组,每个地块为第一维数组的一个值)
* @return handType:返回的顺序和数组地块的顺序一一对应,true:为顺时针,false:逆时针,null:不是多边形
* 格式:
* data:[
*