判断是否是凸多边形的方法很简单:
1.遍历序列,找到位于最左边的顶点(A)
2.计算其它顶点与A的连线的斜率,并根据斜率进行顶点排序。(如果所给的点集可以构成
一个凸多边形,且没有三个顶点在一条直线上的情况,那么如此排序后的顶点就已经是“
顺序”的了)。
3.遍历排序后的顶点,过每对相邻顶点做直线,如果发现其它的点并不都在直线的同侧,那
么该点集就不能构成凸多边形,算法结束。
4.如果第3步的验证没有问题,那么在第2步计算出的排序后顶点序列就已经是我们需要的东
西了。
写完上面的算法,我想到了一个简便的方法:过待考察的两个顶点做一条直线,若其它的
点都在直线的同侧,则可以认为该连线是多边形的边(未考虑凹多边形的情况,但是算法非
常容易实现)。