计算几何——凸包
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同理求解。
相关文章推荐
- linux磁盘管理
- Android——内存管理基础
- java自定义注解
- win7与android设备通过蓝牙串口的连接方法
- glew库
- 国产第一虚拟币元宝币:元宝币基金会
- struts2中result的使用
- Iptables & tc在公有云的应用(示例)
- [ACM] hdu 4706 Children's Day
- 用栈来实现数制转换
- hdu 2509
- [ACM] hdu 4706 Children's Day
- 数据库持久连接理解
- 【Kettle从零开始】第十二弹之Kettle在Linux下搭建
- 链接libtorrent库时出现的问题
- java实现的可以无限级别添加子节点的菜单树
- 你知道吗?衡量 Web 性能的几个关键指标
- 20140311记录
- 程序员的工具
- 作业