凸包算法实现点集合中搜索凸包顶点的功能,可以处理共线情况,可以输出共线点也可以不输出而只输出凸包顶点.经典的Graham Scan算法,点排序使用极角排序方式,并对共线情况做特殊处理.一般算法是将共线的点去掉距离小的,保留最远的,这样处理会导致不能输出凸包边上的点,只能输出顶点.但是有时候需要输出这些边上的点,因此这里我将共线点都保留,并按照顺序排列.共线点排列方式是:非起始边按照从远道近排列,起始边按从近到远排列. 算法原理参见如下网址,讲解很详细: http://blog.sina.cn/d…