明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1619|回复: 4

[求助]优化图元路径的算法问题?

[复制链接]
发表于 2006-4-22 12:38:00 | 显示全部楼层 |阅读模式

各位前辈:
    我编了一个程序,用来对用户所提供的图形里的图元从指定参考点开始寻找离参考点最近的图元,找到后,以找到的图元的端点为下一参考点再找离新的参考点最近的图元.下面这个程序用了两个循环,内外嵌套,在处理数量在1000个以下的图元时效果还勉强,但如果图元到了上万个的时候,那可得到外面去抽支烟再回来都还搞不定.请各位前辈及高手们帮忙看看,纠正我的思路和使用的算法,小弟先谢谢了!

本帖子中包含更多资源

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

x
发表于 2006-4-22 13:37:00 | 显示全部楼层

从无到有.....

(defun HHSel (a)
  (ssget "c" (mapcar '+ bspt a) (mapcar '+ bspt a))

----snip-----
(setq bspt (getpoint "\n请指定开始优化的位置:"))
(setq HH '(1 1)
      fac '(1.25 1.25)     ; or '(1.5 1.5) ; '(2.0 2.0) ......
)

;;; Seach
(if (ssget "X")
  (while (not (setq ss1 (HHSel HH)))
    (setq HH (mapcar '* HH fac))
) )

----snip-----

 楼主| 发表于 2006-4-22 14:13:00 | 显示全部楼层
Andyhon大侠,“从无到有”,您的方法让我眼前一亮,可惜我水平太低,能不能再说明白一点?楼上的程序我有点看不明白呀,谢谢。
 楼主| 发表于 2006-4-22 14:17:00 | 显示全部楼层
本帖最后由 作者 于 2006-4-22 16:56:23 编辑

另外,我用了AutoCAD2002的ExpressTools里的overkill功能(删除及合并重复图元),觉得人家做得太棒了,我试了试画了5000对重复的图元(即1万个图元),哇噻,只要几秒钟就搞定了。一万个图元呀!!!!人家是怎么在几秒钟里对比1万个图元的呀?我想这应该就是传说中的算法吧!
发表于 2006-4-22 19:35:00 | 显示全部楼层

(defun HHSel (a)
  (ssget "c" (mapcar '+ bspt a) (mapcar '+ bspt a))

是不是有点问题?只有刚好在点上面的可以选择得到?

(ssget "c"  bspt (mapcar '+ bspt a))

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

本版积分规则

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

GMT+8, 2025-9-20 01:40 , Processed in 0.188411 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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