Gráficos: ¿Cómo verifica la intersección entre un segmento de línea y un rayo de línea que emana de un punto en un ángulo horizontal?

Los puntos en el segmento entre [matemática] (x_1, y_1) [/ matemática] y [matemática] (x_2, y_2) [/ matemática] pueden expresarse como [matemática] \ izquierda (x_1 + p (x_2-x_1), y_1 + p (y_2-y_1) \ right) [/ math] con [math] 0 \ le p \ le 1 [/ math].

Los puntos en el rayo que comienzan desde [matemáticas] (x_0, y_0) [/ matemáticas] con ángulo [matemáticas] \ theta [/ matemáticas] pueden expresarse como [matemáticas] \ izquierda (x_0 + q \ cos \ theta, y_0 + q \ sin \ theta \ right) [/ math] con [math] q \ ge 0 [/ math].

Establecer puntos resultantes para que sea igual crea un sistema de 2 ecuaciones con 2 variables y algunas restricciones, es decir
[matemáticas] x_1 + p (x_2-x_1) = x_0 + q \ cos \ theta [/ matemáticas]
[matemáticas] y_1 + p (y_2-y_1) = y_0 + q \ sin \ theta [/ matemáticas]
con restricciones [math] 0 \ le p \ le 1 [/ math] y [math] q \ ge 0 [/ math].

Primero encuentra p y q de manera tal que se mantenga la equivalencia (dependiendo de los valores de los puntos y el ángulo puede encontrar soluciones cero, una o infinitas), y luego descarta cualquier p y q que no satisfaga sus restricciones. La resultante p y q determinan las intersecciones.