找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 778|回复: 2

一起写写这个算法“凸包”

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-3-25 07:27:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
http://www.xdcad.net/forum/showthread.php?s=&threadid=148502
  1. 凸包的求法:

  2.     现在已经证明了凸包算法的时间复杂度下界是O(n*logn),但是当凸包的顶点数h也被考虑进去的话,Krikpatrick和Seidel的
  3. 剪枝搜索算法可以达到O(n*logh),在渐进意义下达到最优。最常用的凸包算法是Graham扫描法和Jarvis步进法。本文只简单
  4. 介绍一下Graham扫描法,其正确性的证明和Jarvis步进法的过程大家可以参考《算法导论》。

  5.     对于一个有三个或以上点的点集Q,Graham扫描法的过程如下:

  6.     令p0为Q中Y-X坐标排序下最小的点
  7.     设<p1,p2,...pm>为对其余点按以p0为中心的极角逆时针排序所得的点集(如果有多个点有相同的极角,除了距p0最
  8. 远的点外全部移除
  9.     压p0进栈S
  10.     压p1进栈S
  11.     压p2进栈S
  12.     for i ← 3 to m
  13.       do while 由S的栈顶元素的下一个元素、S的栈顶元素以及pi构成的折线段不拐向左侧
  14.         对S弹栈
  15.       压pi进栈S
  16.     return S;


  17.     此过程执行后,栈S由底至顶的元素就是Q的凸包顶点按逆时针排列的点序列。需要注意的是,我们对点按极角逆时针
  18. 排序时,并不需要真正求出极角,只需要求出任意两点的次序就可以了。而这个步骤可以用前述的矢量叉积性质实现。
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-3-26 00:22:49 | 显示全部楼层
应该不难,
就是写出来的代码执行快慢.
无非是排序,再排序,一直回到起点.(令p0为Q中Y-X坐标排序下最小的点
)-->保证能回去
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-26 22:06:57 | 显示全部楼层
1:点归入选择集ss0,先取出最左点P1,最上点P2,最右点P3,最下点P4四个关键点,P1P2左上角归入集ss1,
P2P3右上角归入集ss2,P3P4右下角归入集ss3,P3P4左下角归入集ss4,把p1,p2,p3,p4点围成的区域内的
点移出选择集,
2:[在ss1取出最左点P11,把p1,p2,p11点围成的区域内的点移出选择集ss1],重复[****]步调直到ss1为nil,
3:[在ss2取出最上点P21,把p2,p3,p21点围成的区域内的点移出选择集ss2],重复[****]步调直到ss2为nil,
4:[在ss3取出最右点P31,把p3,p4,p31点围成的区域内的点移出选择集ss3],重复[****]步调直到ss3为nil,
5:[在ss4取出最下点P41,把p4,p1,p41点围成的区域内的点移出选择集ss4],重复[****]步调直到ss4为nil,
6:把P1-->历次P11-->P2-->历次P21-->P3-->历次P31-->P4-->历次P41-->P1围起来即成你要的凸包线。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 17:12 , Processed in 0.243568 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表