计算几何-凸包(Convex Hull)

凸包(Convex Hull)是计算几何中的一个经典常用的算法。它解决的问题在于给定空间一堆离散的点,计算包含所有点的凸多边形。

计算几何-凸包(Convex Hull)_第1张图片
计算几何-凸包(Convex Hull)

凸的定义

凸是指图形内任意两点的连线都不经过图形内部。

计算几何-凸包(Convex Hull)_第2张图片
计算几何-凸包(Convex Hull)

计算凸包时要考虑一些特殊情况,比如凸包上多点重叠,凸包上多点共线,通常我们会倾向于用最少的点来描述凸包。

凸包算法伪代码

计算几何-凸包(Convex Hull)_第3张图片
凸包(Convex Hull)算法伪代码

凸包算法C++实现

计算几何-凸包(Convex Hull)_第4张图片
凸包(Convex Hull)算法C++实现

算法时间复杂度

由于做了一次排序算法的时间复杂度O(NlogN),两个for循环的时间复杂度为O(N),所以整体的时间复杂度为O(NlogN).

计算几何-凸包(Convex Hull)_第5张图片
半杯茶的小酒杯

个人网站地址: http://www.banbeichadexiaojiubei.com

你可能感兴趣的:(计算几何-凸包(Convex Hull))