自贡黄明儒 发表于 2013-12-24 13:41:44

带容差去除相同图元

;;带容差去除相同图元
;;(HH:delsame1 '(1 7 2 3 7 3 4 4.5 4.5) 1)=>(1 7 2 3 4)
;;(HH:delsame1 (list '(1 2) '(1.1 2.1) '(3 2.1) '(3 2.2)) 1)=>((1 2) (3 2.1))

(defun HH:delsame1 (lst fuzz / NEW X Y)
(mapcar
    '(lambda (x)
       (if (apply 'or (mapcar '(lambda (Y) (equal Y X fuzz)) New))
         nil
         (setq New (cons x New))
       )
   )
    lst
)
(reverse New)
)

USER2128 发表于 2013-12-25 08:14:45

黄大侠的程序经典!

434939575 发表于 2014-3-31 14:22:35

偷偷的拿走了。感谢。

434939575 发表于 2015-1-17 15:01:02

再次请教大师:'(lambda (x   Y) .和你这里的\\'(lambda (x)
       (if (apply 'or (mapcar '(lambda (Y) 、
Y包括在X里面怎么理解这个关系。我一直没理解。谢谢@、

自贡黄明儒 发表于 2015-1-19 08:16:31

(if (apply 'or (mapcar '(lambda (Y) (equal Y X fuzz)) New))把此句中的X理解成常数,就好理解了。

llsheng_73 发表于 2015-8-16 06:51:10

如果两条线完全重叠,但从起点到止点顺序刚好相反?
如果两条多线断完全重叠,但其中另一条在其在线段上多一个点?
如果两个文字完全重叠,但插入点和对正方式不一样或者一个为text而另一个为mtext?
也许还有其它一些眼睛看着一样,但图元数据会有些小差别的都很头痛。。。
因此觉得“相同图元”并不太好收拾

wide 发表于 2022-6-26 15:52:13

本帖最后由 wide 于 2022-6-26 15:57 编辑

好函数。{:1_1:}
页: [1]
查看完整版本: 带容差去除相同图元