convex hull是一个计算机几何问题。对于平面上N个坐标不同的点,如何选取并连接其中部分点构成一个多边形使得该平面所有点都被包括在这一多边形内。如图:
对于输入的任意一组点,输出构成convex hull的顶点坐标
Convex Hull有如下两个几何性质:
1 从一点出发进行连接,遍历所有顶点只需要逆时针旋转。
2 Convex Hull各个顶点关于y坐标最小的顶点的极距角(polar angle)为递增关系。
极距角:
取一点O为投影中心,以一定的半径作一个球,称为投影球;通过球心作一个水平面Q,称为投影面;投影面与投影球相交为一圆,它相当于地球的赤道,称为基圆;垂直投影面的直径NS,称为投影轴;投影轴与投影球面的两个交点N和S,即投影球的北极和南极,它们分别称为上目测点和下目测点。
球面上的任一点A的位置可以用球面坐标(spherical coordinate):方位角φ与极距角ρ来确定,极距角ρ相当于纬度,方位角φ相当于经度。
极距角是指该球面投影点与北极N之间的弧角,也即为投影轴与晶面法线之间的夹角,这个角度应在0°~90°之间,如果在90°~180°之间,意指该晶面位于下半球。
http://blog.sina.com.cn/s/blog_4ae87643010005xv.html
根据以上两个性质实现的Graham S