4. 凸包算法(学习笔记)

4.1 凸包定义

平面的一个子集S被称为是"凸"的,当且仅当对于任意两点
p,q∈S p,q\in S p,qS
线段pq都完全属于S。集合S的凸包Conv(S),就是包含S的最小凸集。

在这里插入图片描述

这里所要讨论的,是如何计算平面上由n个点组成的有限集合P的凸包。可以借助一个虚构式实验,来想像这种凸包的模样:将这里的点想像成钉在平面上的钉子;取来一根橡皮绳,将它撑开围住所有的钉子,然后松开手——啪的一声,橡皮绳将紧绷到钉子上,它的总长度也将达到最小。此时,由橡皮绳围住的区域就是P的凸包。

在这里插入图片描述

因此,可将平面有限点集P的凸包定义为:顶点取自于P且包含P中所有点的那个唯一凸边形(convex polygon)。

4.2 凸包计算

P的凸包是一个凸多边形。表示多边形的一种自然的方法,就是从任一顶点开始,沿顺时针方向依次列出所有顶点。

给定平面点集P={p1,…,pn},通过计算从P中选出若干点,它们沿顺时针方向依次对应于conv§的各个顶点。

input = 平面上一组点:p1,p2,p3,p4,p5,p6,p7,p8,p9

output = 凸包的表示:

在这里插入图片描述

SLOWCONVEXHULL§算法——礼品包装算法

这些边的端点p和q都来自于P;另外,只要适当地定义由p和q所确定直线的方向,使得conv§总是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值