Lo de las distancias funciona bien, siempre que sepas de antemano que el punto pertenece a la recta \[ AB \].
Una alternativa a lo que propones y a lo que propone Samir, muy sencilla a nivel de cálculo, es la siguiente. Supón que tienes dos puntos, \[ A(a,b) \] y \[ B=(c,d) \] con \[ A \neq B \]. Entonces, dado un punto \[ X(x,y) \] cualquiera se tiene:
1) \[ X \] pertence a la recta \[ AB \] (pero quizás no al segmento), si y solo si \[ (x-a)(d-b)=(y-b)(c-a) \].
2) Supón que \[ X \] pertence a la recta \[ AB \]. Como \[ A \neq B \], al menos uno de los números \[ c-a \] y \[ d-b \] es distinto de \[ 0 \]. Entonces puedes calcular \[ \lambda := \frac{x-a}{c-a} \] o \[ \lambda := \frac{y-b}{d-b} \] (si ambos \[ c-a, d-b \] son no nulos las dos definiciones de \[ \lambda \] coinciden por el criterio de 1). Entonces, \[ X \] pertence al segmento \[ AB \] si y solo si \[ 0\leq \lambda \leq 1 \].
La lógica detrás de esto es muy sencilla: \[ X \] pertence a la recta \[ AB \] si y solo si \[ \vec{AX} = \lambda \vec{AB} \] para algún \[ \lambda \], y pertence al segmento si y solo si ese \[ \lambda \] está entre \[ 0 \] y \[ 1 \].
Corregido. Gracias Luis.