转载:http://www.cnblogs.com/Booble/archive/2011/03/10/1980089.html

http://dec3.jlu.edu.cn/webcourse/t000096/graphics/chapter5/03_2.html

 

凸壳:平面点集的最小凸区域。

 

1. Graham扫描算法

1.1 找到坐标系中x坐标最小的点,若不唯一,y坐标最小,该点为原点。

1.2 角度要逐渐变大,即是不断左转

例如:2->3后,3->4的方向是左转,3保留,

       4->5左转,保留4

       5->6右转,去除5

       4->6右转,去除4

       3->6左转,保留3

。。。总结:如果和上一次的方向是左转就压栈,若是右转的话,就一直搜索直到遇到左转的关系,继续压栈。这样栈内一直是个凸壳,扫描结束,得到凸包。