转载: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
。。。总结:如果和上一次的方向是左转就压栈,若是右转的话,就一直搜索直到遇到左转的关系,继续压栈。这样栈内一直是个凸壳,扫描结束,得到凸包。
浙公网安备 33010602011771号