k1nger 发表于 2022-9-13 15:13:57

两点之间折线距离

;;;求两点之间的折线距离:

;;;by k1nger
(defun C:tt()
        (setq a (getpoint "\n选择第一点:"))
        (setq b (getpoint "\n选择第二点:"))
        (setq x1 (car a ))
        (setq y1 (cadr a))
        (setq x2 (car b))
        (setq y2 (cadr b))
        (setq len (+ (abs(- x1 x2)) (abs(- y1 y2)) ))
        (alert (strcat "折线距离=" (rtos len)))
)

llsheng_73 发表于 2022-9-14 17:46:55

本帖最后由 llsheng_73 于 2022-9-14 17:58 编辑

(defun tt(p1 p2)(apply'+(mapcar'abs(apply'mapcar(list '- p1 p2)))))
(defun tt(p1 p2)(apply'+(mapcar'(lambda(x y)(abs(- x y)))p1 p2)))
(defun tt(p1 p2 / ang)(*(distance p q)(+(abs(cos(setq ang(angle p1 p2))))(abs(sin ang)))))

合理写法应该是第二个,如果不计算Z坐标,可以改为

(defun tt(p1 p2)(apply'+(mapcar'(lambda(x y z)(abs(- x y z)))p1 p2 '(0 0))))

tigcat 发表于 2022-9-13 19:56:36

(apply '+(mapcar '(lambda(x)(abs(apply '- x))) (mapcar 'list (getpoint)(getpoint))))
支持楼主分享源码,我来个拼了半天的一行代码

k1nger 发表于 2022-9-14 17:22:42

tigcat 发表于 2022-9-13 19:56
(apply '+(mapcar '(lambda(x)(abs(apply '- x))) (mapcar 'list (getpoint)(getpoint))))
支持楼主分享源 ...

强,要么说还是得是大神!

tigcat 发表于 2022-9-14 17:58:42

k1nger 发表于 2022-9-14 17:22
强,要么说还是得是大神!

真大神龙总在4楼。我是拼凑代码阶段。楼主我们一起学lisp啊

技术工作室 发表于 2022-9-30 07:50:35

支持一下顶一个
页: [1]
查看完整版本: 两点之间折线距离