flowerson
发表于 2018-4-28 02:29:12
基本搞定,主要解决办法暂时是两个点集间最短距离。
flowerson
发表于 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
)
;只是实现了,还望各位大侠改进算法技巧什么的。多拍砖!
flowerson
发表于 2018-5-2 10:59:11
更复杂的连接成功!
mahuan1279
发表于 2018-5-2 11:33:24
最小树问题。
clinber
发表于 2018-5-2 17:24:16
flowerson 发表于 2018-5-2 10:18
;最关键的点表对点表最短的求法,如下:(defun ptsort (lsta lstb / i ia mina nia pmina pmind)
(setq...
缺自定义函数
edata
发表于 2018-5-2 21:40:36
他的原理应该就是每一个点的最近点连线。。
前生
发表于 2018-5-2 22:42:54
edata 发表于 2018-5-2 21:40
他的原理应该就是每一个点的最近点连线。。
是的。这个原则的东西的连线的总长度是最小的。
在数控加工中,经常要用到。
vectra
发表于 2018-5-3 08:20:53
查找最近邻比较有效的数据结构是KD tree 可是没看到lisp实现 要造个轮子也比较花时间
xyp1964
发表于 2018-5-4 00:09:01
属于点集的排列组合问题,可能的数量: N!/2,点太多数据量会太大。
取线长最短者为最终结果。
xyp1964
发表于 2018-5-4 00:13:19