Vanila Lisp中的排序点列表
你好我试图为draftsight创建一个代码,但正如我们所知,它只支持AutoLISP而不支持Visual LISP。我被困在一个点,我想在X和Y方向排序点列表,我们可以使用VL-sort函数,但我没有找到任何autolisp函数替代它。我希望能从你那里得到一些想法。
等待您的输入。
当做
萨提什语 你可以从这里开始:http://www.faqs.org/faqs/CAD/autolisp-faq/part1/section-9.html 哇!谢谢。。。
那些不是吉尔写的吗?在这个线程中。
顺便说一句,这里有一些简单的版本:
; _$ (SortPointList 'x '((0 1 2) (2 0 1) (1 2 0))) -> ((0 1 2) (1 2 0) (2 0 1))
; _$ (SortPointList 'y '((0 1 2) (2 0 1) (1 2 0))) -> ((2 0 1) (0 1 2) (1 2 0))
; _$ (SortPointList 'z '((0 1 2) (2 0 1) (1 2 0))) -> ((1 2 0) (2 0 1) (0 1 2))
(defun SortPointList ( mode pL )
(cond
( (not (vl-position mode '(x y z))) (princ "\nInvalid mode.") )
(T
(vl-sort pL
'(lambda (p1 p2)
(apply '< (mapcar (cdr (assoc mode '((x . car)(y . cadr)(z . caddr)))) (list p1 p2)))
)
)
)
); cond
); defun
这是quicksort的另一个实现,可以修改代码以接受任意排序函数。
IDK。您引用的线程来自2011年,@gile没有提及此代码的来源。
我链接中的代码是1998年7月的。
谢谢你的努力,但我上面提到,我不想使用VL函数。
谢谢你
啊,很抱歉,我没有仔细阅读。
页:
[1]