QuickHull(二维、三维空间点专用)
// 方法思路:寻找一个凸核,并慢慢扩张成一个凸体包围盒;
1. 寻找各个方向上极值点 (2D则是4个,3D则是6个) 构成凸核(注意这个凸核一定包含于最终的凸包);
2. 删除凸核内的点集;
3. 若剩余点集非空,寻找各边(3D是各面) 的最远点加入凸包(注意必定是凸包上的点); 若点集为空,结束,返回凸包;
4. 构成新的凸核,转STEP2.
// 思路很简单, 注意需要考虑各种临界情况;
// by 我执可破. 2016.10.23 于上海浦东.