Graham(GiftWraping)求凸包算法

来源:互联网 发布:单片机51 编辑:程序博客网 时间:2024/05/22 06:11

step1: 对于一点列,选出y值最小的点;
step2: 将该点列绕该y最小值点逆时针排列;
step3: 判断每一个点的凹凸性。

程序设计:
step1: 确定input和output.
       input: 原始输入的一个点列inputPoints;
       output: 所求凸包上的点构成的点列outputPoints。
step2: 求出inputPoints中y值最小的那个点,并与其第一个元素交换位置,设计函数SortbyAngle()。向量点乘可以得到角的cosin值,用stl中的sort()函数排序。
step3: 求outputPonts,确保放入该点列的三个点是一个凸折线段。

 

类设计如下:

原创粉丝点击