明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: flowerson

[讨论] (求助)把所有点连接可以是多段线段,但是要和最小。如何思考?

[复制链接]
 楼主| 发表于 2018-4-28 02:29:12 | 显示全部楼层
基本搞定,主要解决办法暂时是两个点集间最短距离。

本帖子中包含更多资源

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

x
 楼主| 发表于 2018-5-2 10:18:21 | 显示全部楼层
;最关键的点表对点表最短的求法,如下:(defun ptsort (lsta lstb / i ia mina nia pmina pmind)
  (setq pmina (list (car lsta) (car lstb)))
  (setq pmind (apply
                'distance
                pmina
              )
  )
  (setq i 0)
  (repeat (length lsta)
    (setq ia (nth i lsta))
    (setq mina (apply
                 'distance
                 (zg-nearestpt ia lstb)
               )
    )
    (if (> pmind mina)
      (progn
        (setq pmind mina)
        (setq nia (list ia (cadr (zg-nearestpt ia lstb))))
      )
    )
    (setq i (+ i 1))
  )
  nia
)


;只是实现了,还望各位大侠改进算法技巧什么的。多拍砖!
 楼主| 发表于 2018-5-2 10:59:11 | 显示全部楼层
更复杂的连接成功!

本帖子中包含更多资源

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

x
发表于 2018-5-2 11:33:24 | 显示全部楼层
最小树问题。
发表于 2018-5-2 17:24:16 | 显示全部楼层
flowerson 发表于 2018-5-2 10:18
;最关键的点表对点表最短的求法,如下:(defun ptsort (lsta lstb / i ia mina nia pmina pmind)
  (setq  ...

缺自定义函数
发表于 2018-5-2 21:40:36 | 显示全部楼层
他的原理应该就是每一个点的最近点连线。。
发表于 2018-5-2 22:42:54 | 显示全部楼层
edata 发表于 2018-5-2 21:40
他的原理应该就是每一个点的最近点连线。。

是的。这个原则的东西的连线的总长度是最小的。
在数控加工中,经常要用到。
发表于 2018-5-3 08:20:53 | 显示全部楼层
查找最近邻比较有效的数据结构是KD tree 可是没看到lisp实现 要造个轮子也比较花时间
发表于 2018-5-4 00:09:01 | 显示全部楼层
属于点集的排列组合问题,可能的数量: N!/2,点太多数据量会太大。
取线长最短者为最终结果。

本帖子中包含更多资源

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

x
发表于 2018-5-4 00:13:19 | 显示全部楼层

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-5-19 05:27 , Processed in 0.142917 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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