带容差去除相同图元
;;带容差去除相同图元;;(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)
) 黄大侠的程序经典! 偷偷的拿走了。感谢。 再次请教大师:'(lambda (x Y) .和你这里的\\'(lambda (x)
(if (apply 'or (mapcar '(lambda (Y) 、
Y包括在X里面怎么理解这个关系。我一直没理解。谢谢@、
(if (apply 'or (mapcar '(lambda (Y) (equal Y X fuzz)) New))把此句中的X理解成常数,就好理解了。 如果两条线完全重叠,但从起点到止点顺序刚好相反?
如果两条多线断完全重叠,但其中另一条在其在线段上多一个点?
如果两个文字完全重叠,但插入点和对正方式不一样或者一个为text而另一个为mtext?
也许还有其它一些眼睛看着一样,但图元数据会有些小差别的都很头痛。。。
因此觉得“相同图元”并不太好收拾 本帖最后由 wide 于 2022-6-26 15:57 编辑
好函数。{:1_1:}
页:
[1]