1.预处理存储在P[0:m]中,以纵坐标最小的点P[0]为极点,水平方向为极轴,按照极角大小给点排序。如果极角相等,只留下距极点较远的点;
2.将p[0]、p[1]、p[2]依次压入栈Q,对于剩余的点依次判断栈顶元素p[q]是否位于p[0]、p[i]和p[next]构成的三角形内,如果在三角形内,说明p[q]不是凸包的顶点,则弹出p[q],继续扫描;否则压入p[next],继续处理p[next+1].
1.预处理存储在P[0:m]中,以纵坐标最小的点P[0]为极点,水平方向为极轴,按照极角大小给点排序。如果极角相等,只留下距极点较远的点;
2.将p[0]、p[1]、p[2]依次压入栈Q,对于剩余的点依次判断栈顶元素p[q]是否位于p[0]、p[i]和p[next]构成的三角形内,如果在三角形内,说明p[q]不是凸包的顶点,则弹出p[q],继续扫描;否则压入p[next],继续处理p[next+1].