Encuentra las intersecciones de la recta que contiene el segmento y la circunferencia. Esto equivale a resolver una ecuación cuadrática. Si no hay intersecciones ( es decir las soluciones de la ecuación correspondiente no son reales), entonces su segmento no interseca el círculo. Ahora bien, si hay son intersecciones, ver si están dentro del segmento o no.
Para ponerlo en práctica, dejemos que $P$ y $Q$ sean los puntos finales de su segmento y $C$ y $r$ sea el centro y el radio de tu círculo. Entonces cada punto de la línea que pasa por $P$ y $Q$ viene dada por la fórmula $$t P + (1-t) Q$$ para exactamente un valor de $t\in\mathbb R$ y los puntos del segmento son precisamente aquellos para los que el correspondiente $t$ está en el intervalo $[0,1]$ .
Ahora el punto correspondiente a $t\in\mathbb R$ está en el círculo si y sólo si $$\langle t P + (1-t) Q - C,t P + (1-t) Q - C\rangle = r^2,$$ donde $\langle\mathord\cdot,\mathord\cdot\rangle$ es el producto interno (punto) habitual de los vectores. Si se resuelve esta ecuación -es fácil, ya que es una ecuación cuadrática para $t$ -, se encuentra el $t$ correspondientes a los puntos de intersección del círculo y la línea, y si al menos uno de ellos $t$ pertenecen al intervalo $[0,1]$ entonces el segmento intersecta el círculo.
Más tarde: Intenté tener Mathematica hacer el cálculo por mí. Suponiendo que $C=(0,0)$ y $r=1$ como podemos hasta la traducción y el reescalado, y dejando $P=(p1,p2)$ , $Q=(q1,q2)$ , lo siguiente calcula el $t$ 's:
P = {p1, p2};
Q = {q1, q2};
ts = t /. Solve[Norm[t P + (1 - t) Q]^2 == 1, t];
Esto hace que la variable ts tenga el valor
$$\left\{\frac{-p_1 q_1-p_2 q_2-\sqrt{p_1^2 \left(-q_2^2\right)-2 p_1 q_1+2 p_2 p_1 q_1 q_2-p_2^2 q_1^2-2 p_2 q_2+p_1^2+p_2^2+q_1^2+q_2^2}+q_1^2+q_2^2}{-2 p_1 q_1-2 p_2 q_2+p_1^2+p_2^2+q_1^2+q_2^2},\frac{-p_1 q_1-p_2 q_2+\sqrt{p_1^2 \left(-q_2^2\right)-2 p_1 q_1+2 p_2 p_1 q_1 q_2-p_2^2 q_1^2-2 p_2 q_2+p_1^2+p_2^2+q_1^2+q_2^2}+q_1^2+q_2^2}{-2 p_1 q_1-2 p_2 q_2+p_1^2+p_2^2+q_1^2+q_2^2}\right\}$$
(Esta era una fórmula enorme, que probablemente no quepa en la ventana de tu navegador...) Si la expresión dentro de las raíces cuadradas es negativa, no hay reales $t$ 's, por lo que la línea (por lo tanto, a fortiori el segmento) y el círculo son disjuntos. Si no es así, ahora tenemos que ver si al menos una de las raíces en $[0,1]$ .
Si ahora digo Mma para decirme cuándo es la primera de las raíces en $[0,1]$ diciendo que calcule
Reduce[0 <= ts[[1]] <= 1, Reals]
funciona durante un tiempo, y obtiene una respuesta enorme, presumiblemente equivalente a la original
0 <= ts[[1]] <= 1
¿Alguien puede dar sentido a la enorme respuesta? (si se pregunta en cambio por la más significativa
Reduce[0 <= ts[[1]] <= 1 || 0 <= ts[[2]] <= 1, t, Reals]
ocurre lo mismo)
PS: Ten en cuenta que no he hecho absolutamente ningún intento de ser rápido o particularmente inteligente con esta idea: es sólo la forma directa de plantear el problema y resolverlo.