张大锤 发表于 2018-5-8 15:59:57

用LISP 得到线的中间点

求问大佬一个问题 如何得到一条线的中间点
(defun c:xxx()
(setq ss(SSGET'((0 . "line"))))   选择一条线
(setq n 0)
(repeat (sslength ss)
(setq ent(ssname ss n))
(setq en(entget ent))
(setq p1 (cdr (assoc 10 en)))      得到起点
(setq p2 (cdr (assoc 11 en)))      得到终点
(setq p3   怎么得到中间点)

自学的比较乱 求明白的同学告知一下

edata 发表于 2018-5-8 21:13:35

;p1 p2的中点
(mapcar '(lambda(x y)(* 0.5 (+ x y))) p1 p2)

张大锤 发表于 2018-5-9 09:28:47

Andyhon 发表于 2018-5-8 19:36
弃 中点捕捉 而另行运算!?所为何来???

想学习一下 如何找到中心点
自学的比较杂 想到那了 就研究一下
感谢论坛的各位大佬 学到很多

张大锤 发表于 2018-5-8 16:41:04

lijiao 发表于 2018-5-8 16:25
(mapcar '* (mapcar '+ p1 p2) '(0.5 0.5 0.5))

感谢 我没用过mapcar这个函数 先感谢一下 我会找资料学习一下的

bssurvey 发表于 2018-5-8 16:22:44

(setq p3(polar p1 (angle p1 p2) (/ (distance p1 p2) 2)))
試試這個

lijiao 发表于 2018-5-8 16:25:39

(mapcar '* (mapcar '+ p1 p2) '(0.5 0.5 0.5))

张大锤 发表于 2018-5-8 16:39:13

bssurvey 发表于 2018-5-8 16:22
(setq p3(polar p1 (angle p1 p2) (/ (distance p1 p2) 2)))
試試這個

超级感谢 您已经第二次帮助我了

Andyhon 发表于 2018-5-8 19:36:04

弃 中点捕捉 而另行运算!?所为何来???

张大锤 发表于 2018-5-9 09:32:49

edata 发表于 2018-5-8 21:13


一个问题 有很多解决办法 学到

25705070 发表于 2018-5-9 17:17:56

新人报道,向大家学习,受教了
页: [1] 2
查看完整版本: 用LISP 得到线的中间点