读高飞鸟关于trans的帖子有感写两个函数,不知对否。
;;======== { NO 点到两点表示的线;三个返回值,垂线距离+线起点到垂足距离+垂足坐标 } =========;;
;;
(defun yy-pts-dispt2pt11 (pt pta ptb / ba)
;求点到线的垂线距离
;(car (trans (mapcar '- pt pta) 0 (mapcar '- ptb pta)))
(setq ba (mapcar '- ptb pta) pta (trans pta 0 ba) pt (trans pt 0 ba))
(list(-(car pt)(car pta))(-(caddr pt)(caddr pta))(trans(list(car pta)(cadr pta)(caddr pt))ba 0))
)
;;======== { NO 得到距离两点表示的线的起点一定距离的点坐标 } =========;;
;;dis可以是负数表示沿线正反角度下一定距离的点
(defun yy-pts-polar2ptdis (dis pta ptb / ba)
(setq ba (mapcar '- ptb pta) pta (trans pta 0 ba))
(trans(list(car pta)(cadr pta)(+ dis(caddr pta))) ba 0)
)