快速凸包算法ppt课件.ppt





《快速凸包算法ppt课件.ppt》由会员分享,可在线阅读,更多相关《快速凸包算法ppt课件.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物Advanced Graphics孙孙 晓晓 鹏鹏博士博士 教授教授20112011年年 11 11月月 16 16日日采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物第二章 二维凸包采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.4 凸包的快速算法 主要思想 点集S 的凸包是取决于凸包边
2、界附近的点 逐步丢掉凸包内部的点,只关注凸包附近的点,从而提高算法的效率 最好情况O(nlogn)、 最坏情况O(n2)采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.4 凸包的快速算法 算法过程 取两个极端点,它们是最右最下点pdr和最左最上点pul 有向直线 pdr pul将整个凸包被划分为右凸包和左凸包 对右凸包和左凸包分别进行递归 递归 设S1是严格在直线 pdr pul右边的点集(S1可能是空集) 在S1中寻找距离直线 pdr pul最远的点,作为pdr pul右边的一个极端点b 连接pdr和b
3、 ,及b 和pul 把pdr右侧的点集记为A, pul右侧的点集的点记为B 对边pdr b和点集A、对边b pul 和点集B分别递归调用 依次连接凸包上的顶点,得点集S1的凸包,即点集S的右凸包 类似地,计算出点集S的左凸包,从而得到整个点集S的凸包采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.4 凸包的快速算法 算法过程 取两个极端点,它们是最右最下点pdr和最左最上点pul 有向直线 pdr pul将整个凸包被划分为右凸包和左凸包 对右凸包和左凸包分别进行递归采用PP管及配件:根据给水设计图配置好P
4、P管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.4 凸包的快速算法 算法过程 递归 设S1是严格在直线 pdr pul右边的点集(S1可能是空集) 在S1中寻找距离直线 pdr pul最远的点,作为 pdr pul右边的一个极端点b 连接 pdr和b ,及b 和 pul 把 pdrb右侧的点集记为A, bpul右侧的点集的点记为B 对边 pdrb和点集A、对边bpul 和点集B分别递归调用采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.4 凸包的快速算法
5、最好情况出现在每次划分均是平衡的, O(nlogn) 最坏情况出现在每次划分点的分布都很极端, O(n2)采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.5 Graham算法 20世纪60年代末 贝尔实验室需要求解10,000个点的凸包 O(n2)的方法太慢 1972年 Graham出O(nlogn)的二维凸包算法采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.5 Graham算法 基本思想 在凸包内部找到一个点o
6、如S 中任何三个不共线的点的重心,O(1) 将o作为极坐标的中心,计算每个点的极角 对S中的点按升序排列(如pi ,pi+1 , pi+2),O(nlogn) 计算相邻三点转角的凹凸性,删除内凹的点O(n) 当点集内不再包含内凹的点时,得到凸包采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2.5 Graham算法以极端点 pi为初始点,依次对相邻三个点pi ,pi+1和pi+2 ,计算pi pi+1pi+1pi+2 如果在z 轴上的投影大于零,即(pi pi+1pi+1pi+2)z0 说明在pi+1 处左转
7、弯,多边形在该点上外凸,暂时保留这三点 前进一步,同样去判断相邻三个点pi+1,pi+2和 pi+3 如果(pi pi+1pi+1pi+2)z 0 说明在pi+1处右转弯,多边形在该点上内凹,把pi+1点从多边形边界中删除 后退一步,同样去判断相邻三个点pi-1,pi和 pi+2时间复杂度为线性O(n)采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物凸包计算方法对比 极端边算法O(n3) 礼品包裹算法O(n2) 快速算法 最好情况O(nlogn)、 最坏情况O(n2) Graham 算法 排序计算O(nlog
8、n)、执行时间O(n) 总的时间复杂度O(nlogn)采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物第三章 凸包扩展采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物3.1 多面体 两个集合是同胚的(homeomorphic) 指它们之间存在一个连续的一一映射 并且这个映射的逆映射也是连续的 两个同胚的集合允许它们各自拉伸和扭曲,但只要不撕裂,其结果仍然同胚 如果任一集合被撕裂了,映射的连续性便被破坏,两个集合就不再同胚了采
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 算法 ppt 课件

限制150内