明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: highflybir

[越飞越高] 【飞鸟集】最小包围圆的最佳算法

    [复制链接]
发表于 2010-9-20 00:23:00 | 显示全部楼层
hifly兄这个源码确实有更高的效率,没有仔细推敲,不知能否利用交叉引用递归来提高效率
暂时发现in2这个函数改为递归效率会更高些
  1. ;;判断点集是否在圆内----------------------
  2. ;;;改为递归写法
  3. (defun in2 (ptl cen r)
  4.   (cond ((null (cadr ptl))
  5.   (in1 (car ptl) cen r)
  6. )
  7. ((in1 (car ptl) cen r)
  8.   (in2 (cdr ptl) cen r)
  9. )
  10. (t nil)
  11.   )
  12. )

发表于 2010-9-20 00:26:00 | 显示全部楼层
另外在4pc函数里面,有个疑问foreach里面是否需要重新定义minr为r
  1. ;;定义四点的最小圆圆心半径,并返回三点坐标
  2. (defun 4pc (p1 p2 p3 ptmax / pts mind minr r 4ps)
  3.   (setq pts (list (3pc p1 p2 ptmax)
  4.     (3pc p1 p3 ptmax)
  5.     (3pc p2 p3 ptmax)
  6.      )
  7.   )
  8.   (setq 4ps (list p1 p2 p3 ptmax))
  9.   (setq minr 1e308)
  10.   (foreach n pts
  11.     (setq r (cadr n))
  12.     (if (and (< r minr)
  13.       (in2 4ps (car n) r)
  14. )
  15.       (setq mind n
  16.      minr r);_这里是否需要加上重定义minr为r
  17.     )
  18.   )
  19.   mind
  20. )
发表于 2010-9-21 14:24:00 | 显示全部楼层
chlh_jd发表于2010-9-20 0:26:00另外在4pc函数里面,有个疑问foreach里面是否需要重新定义minr为r 以下内容为程序代码: ;;定义四点的最小圆圆心半径,并返回三点坐标 (defun 4pc (p1 p2 p3 ptmax / pts m

谢谢哦,这几天忙着画图呢,没来得及看你的代码。呵呵,程序写了很多年了,还没仔细推敲。

 

祝你中秋快乐!

发表于 2010-9-22 13:25:00 | 显示全部楼层

也祝你中秋快乐!

顺祝大家中秋快乐!~

发表于 2010-10-18 08:17:00 | 显示全部楼层
楼主,如果是最小正三角形有没有试过,或者正方形,正N边形
发表于 2010-10-27 15:23:00 | 显示全部楼层
仲文玉发表于2010-10-18 8:17:00楼主,如果是最小正三角形有没有试过,或者正方形,正N边形

没问题,就算是正多边形,算法也成立。

发表于 2010-10-27 15:26:00 | 显示全部楼层
chlh_jd发表于2010-9-20 0:26:00另外在4pc函数里面,有个疑问foreach里面是否需要重新定义minr为r 以下内容为程序代码: ;;定义四点的最小圆圆心半径,并返回三点坐标 (defun 4pc (p1 p2 p3 ptmax / pts m

你的这个意见也是对的。

但是让我感到奇怪的是,我没有这么做,居然也可以,只不过按照我的思路,应该是你修改那样。

回复 支持 反对

使用道具 举报

发表于 2010-10-28 23:56:00 | 显示全部楼层

  来明经这么久,今天才闯到了这里。

似乎又找到了一个芝麻开门的地方

来的太迟了

发表于 2011-8-15 14:25:27 | 显示全部楼层
highflybir 发表于 2009-2-27 02:41
原以为这样的文章可能没多少实际用途,被冷藏了这么久。想不到还有点用处啊。下面的程序可以给你解决这个烦 ...

楼主啊,我新来的,没币了,能不能施舍一下你的附件。。。。
发表于 2011-9-6 13:18:54 | 显示全部楼层
多谢分享,来学习一下
123456下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 04:18 , Processed in 0.170964 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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