Graham(GiftWraping)求凸包算法

本文介绍了Graham算法求解二维平面上点集的凸包。首先找到点列中y值最小的点,然后逆时针排列其余点。通过判断点之间的向量交叉积的符号确定凸凹性,构建输出的凸包点列。类CGrahamConvex实现了算法,包括SortbyAngle()函数用于排序和GetOutputPoints()函数用于获取凸包。
摘要由CSDN通过智能技术生成

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

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

 

类设计如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值