SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1869|回复: 6
打印 上一主题 下一主题

最小包围盒和最大距离点对

[复制链接]

7

主题

24

帖子

45

金币

天使

Rank: 2Rank: 2

积分
118
QQ
跳转到指定楼层
楼主
发表于 2010-6-5 16:40:33 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

   经典图书
最小包围盒和最大距离点对在实际生活中有很多运用。
譬如,最小包围盒指的是能包围一个多边形或者一些多边形的最小面积(可能周长)的这样的一个矩形,这个帖子我只是讨论二维的,所以说是矩形,
求得最小包围和就能合理利用材料,选择合适的截面。
在这个算法中,采用了“游标卡尺”的算法,所以运行速度很快,在求出一个形状的凸包之后,就能迅速得到最小矩形。O(n *log(n))的时间复杂度,
大量运算成为可能。
对于CAD本身来说,用getboundingBox得出的结果仅仅是平行与WCS的坐标系统的矩形,而且有时候很不准确,特别对于spline来说,有时候相差很大。
然而,WCS下的boundingBox一般来说不是最小矩形,如果要得到最小的,必须要旋转这个图形很多次才能得到结果,但这时一个费事费力的事情。
所以,我们有必要考虑一种算法。(至于其他CAD程序,有没有相似的功能,我不知道)
这些天通过几个比较晚的晚上,终于得出了算法。


用法: 先输入命令 Test,
然后输入分弧精度---指的是对样条曲线或者弧形的分段数目,取值在100-2000比较合理,太大容易引起问题且也不能有效提高精度。
选择图形中的多边形或者样条曲线(可多条),然后你就可以看到结果了。最小面积包围矩形用用红线标出。
另外,你可以稍加修改,就可以用这个程序来计算最小周长包围矩形。
另外我附加了求最远距离的程序,和一个用Graham 扫描法求凸包的程序,这两个程序我写的自认为很简洁。仅仅短短的几行,就能达到很高的效率。
另外,我已经编写好了arx代码,基于这里只是讨论lisp,故不贴出源文件。
需要附加说明的是:
如你需要转载,请你说明帖子的来源和原创者。这是尊重我的劳动的起码要求,也是这个论坛的共享“人人为我,我为人人”的体现,而不是一味的索求源码。强烈鄙视拿这些代码卖钱的行为!
关于对这个问题的算法的分析和时间的复杂度的分析,不妨请你参考如下的帖子:
MinAreaRectangle.rar (4.15 KB, 下载次数: 40)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

2

主题

18

帖子

12

金币

天使

Rank: 2Rank: 2

积分
59
QQ
7#
发表于 2010-6-6 02:35:50 | 只看该作者
好深入的研究,向楼主直径,最小包容盒的见过,最大距离点对的算法,一致在苦苦寻求(我当初不知道这个准确叫法,说一堆怎么求封闭形状上的最远的两点距离--让人看不懂),先下起来学习学习。谢谢楼主!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

4

主题

24

帖子

37

金币

天使

Rank: 2Rank: 2

积分
107
QQ
6#
发表于 2010-6-6 02:21:33 | 只看该作者

   经典图书
多谢了!!!!!!!!!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

29

帖子

22

金币

天使

Rank: 2Rank: 2

积分
89
QQ
5#
发表于 2010-6-6 02:15:46 | 只看该作者
楼主你好。你好像没考虑圆和圆弧啊。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

29

帖子

30

金币

天使

Rank: 2Rank: 2

积分
98
QQ
地板
发表于 2010-6-6 01:13:08 | 只看该作者

   经典案例图书
下载了,是LISP源码,学习中
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

22

帖子

119

金币

天使

Rank: 2Rank: 2

积分
191
QQ
板凳
发表于 2010-6-5 23:58:23 | 只看该作者
最大被包围矩形,会不会也有用到?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

20

帖子

17

金币

天使

Rank: 2Rank: 2

积分
69
QQ
沙发
发表于 2010-6-5 20:24:21 | 只看该作者

   经典案例图书
下载了,谢谢
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2024-10-7 05:23 , Processed in 0.196621 second(s), 19 queries , Memcache On.

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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