摘要: 凸包问题首先将所有点按y左边递增排序。若遇到y坐标值相等,则x坐标最小的点优先。此时获得的第一个点(p[0])作为基点。第二次排序。排序依据:基点到其他点构成的向量与x轴逆时针方向夹角大小。求解凸包过程。首先将p[0]、p[1]两个点加入到路径中,用一个next保存路径的栈顶。每次和下一个点p[i]比较时,判断path[next]和p[i]各自到path[next - 1]构成的向量的夹角。如果是逆时针(大于0),将p[i]加入到路径栈。否则,next回退一步,即删除栈顶。如果这时的栈顶仍不满足条件,继续回退。直到条件成立(构成逆时针,且和p[i]构成的向量不共线),那么才将p[i]压栈。然后 阅读全文
posted @ 2012-02-23 20:51 dgsrz 阅读(303) 评论(0) 推荐(0) 编辑