lisp判断点是否在直线上(包括直线延长线)
lisp吧
全部回复
仅看楼主
level 12
;判断点是否在直线上(online 直线图元 点)
(defun online (en pt / ent pt1 pt2 l1 l2 l3 llist)
(setq ent (entget en))
(setq pt1 (cdr (assoc '10 ent)))
(setq pt2 (cdr (assoc '11 ent)))
(setq l1 (distance pt pt1))
(setq l2 (distance pt pt2))
(setq l3 (distance pt2 pt1))
(setq llist (vl-sort (list l1 l2 l3) '>))
(if (equal (car llist) (+ (cadr llist) (caddr llist)) 1e-6)
t
nil
)
)
2019年08月07日 03点08分 1
level 6
最后那个if没必要,只要(equal (car llist) (+ (cadr llist) (caddr llist)) 1e-6)这里就行了
2019年08月08日 14点08分 2
level 13
感觉用角度会更简单一些,角度相等或差180就是共线
2019年08月11日 15点08分 3
1