凸包问题

凸包问题在计算几何中是寻找包含所有点的最小凸多边形。本文介绍了三种算法:穷举法通过两两配对检查直线两侧点来确定;分治法利用横坐标最小和最大的点划分点集并递归处理;Gift-Wrapping算法通过极角坐标系找到极角最小的点逐步构建凸包。
摘要由CSDN通过智能技术生成


凸包问题

问题描述:凸包(Convex Hull)是一个计算几何中的概念。在一个n维向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。在二维空间中,凸包可想象为一个刚好包含所有点的凸多边形,即对于任意的一个点,要么这个点在这个凸多边形上,要么在凸多边形内。凸包问题是给定平面上一堆点集,要求输出位于凸包上的点。这个问题有很多种算法,如穷举法,分治法,Gift-Wrapping算法,Melkman算法,Graham扫描法,这里先介绍前三种算法。


一、穷举法

穷举法比较简单,由两个步骤组成:

  1. 将点集中的点两两配对,每对点分别计算一条直线
  2. 对于每条直线,检查剩余的 n-2 个点是否在直线的同一侧,如果是,再检查是否有点在这条直线上但不在这条线段上,如果没有,则这两个点都在凸包上。

二、分治法

分治法的思想是把一个大问题分成几个结构相似的子问题,然后再把子问题再分成几个更小的子问题……。这样我们就能用递归的方法,分别求这些子问题的解。最后把每个子问题的解“组装”成原来问题的解。分治法解决凸包问题的基本思想是根据在凸包上的点不断划分点集。具体算法如下:

  1. 把所有的
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值