没那么复杂
 - (defun distance-to-line (p1 p2 cp / vxv)
- (defun vxv (u v)
- (list (- (* (cadr u) (caddr v)) (* (cadr v) (caddr u)))
- (- (* (car v) (caddr u)) (* (car u) (caddr v)))
- (- (* (car u) (cadr v)) (* (car v) (cadr u)))))
- (/ (distance '(0 0 0)
- (vxv (mapcar '- cp p1) (mapcar '- cp p2)))
- (distance p1 p2)))
|