Hi,
Here's a little routine which evaluates if 3 points are aligned.
(defun 3pts-aligned-p (p1 p2 p3)
(null (inters p1 p2 p1 p3))
)
and another one, to check a points list.
(defun ptlst-aligned-p (plst)
(or
(null (caddr plst))
(if (null (inters (car plst) (cadr plst) (car plst) (caddr plst)))
(ptlst-aligned-p (cdr plst))
)
)
)