您的位置:首页 > 其它

计算几何——凸包

2014-03-11 19:01 204 查看

1.1 应用场景

有多个手机信号发射器,求解一个最小区域,要求所有的发射器都包含在这个最小区域中,并且任意两台发射器之间的交流包含于在这个区域内。

将所有的发射器看做为点,任意两个点之间的连线都包含于一个平面S。

1.2 问题定义

一个平面的子集S是凸的,当且仅当S中的任意两个点之间的连线都包含于S中。点集P的凸包是所有包含P的凸集中的最小的一个。凸包是唯一的。

1.3 算法分析

将所有的点按照横坐标进行排列(升序),P={p1,p2,……,pn},求解一个点集Lup,这个点集中的点就是凸包上边缘的点,沿着点集连线,就可以得到凸包的上半部分,按照类似算法,可以求出Llower。

将p1,p2加入到Lup中,对于剩下的点集,即p3,……,pn,

for i <- 3 to n:

Lup.append(pi)

While ( Lup中至少包含三个点,并且最后的三个点没有形成向右转)

从Lup中删去这三个点中的中间那个点;

Llower同理求解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: