;;使用三点计算角度的cos余弦(余弦定理)
(defun br:3_point_cosa (point_a point_b point_c / a b c)
(setq a (distance point_b point_c))
(setq b (distance point_a point_c))
(setq c (distance point_a point_b))
(if (= (* b c) 0)
(print "[error]: <defun br:3_point_cosa> b*c=0")
)
(/ (+ (* b b) (* c c) (* -1 a a))
(* 2 b c)
)
)
;; project point onto line - lee mac
;; projects pt onto the line defined by p1,p2
(defun lm:projectpointtoline (pt p1 p2 / nm)
(setq nm (mapcar '- p2 p1)
p1 (trans p1 0 nm)
pt (trans pt 0 nm)
)
(trans (list (car p1) (cadr p1) (caddr pt)) nm 0)
)
(PRINC)