两点之间折线距离
;;;求两点之间的折线距离:;;;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: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))))
(apply '+(mapcar '(lambda(x)(abs(apply '- x))) (mapcar 'list (getpoint)(getpoint))))
支持楼主分享源码,我来个拼了半天的一行代码
tigcat 发表于 2022-9-13 19:56
(apply '+(mapcar '(lambda(x)(abs(apply '- x))) (mapcar 'list (getpoint)(getpoint))))
支持楼主分享源 ...
强,要么说还是得是大神! k1nger 发表于 2022-9-14 17:22
强,要么说还是得是大神!
真大神龙总在4楼。我是拼凑代码阶段。楼主我们一起学lisp啊 支持一下顶一个
页:
[1]