Vamos a llamar a los dados dos puntos (vectores) como
$$
P_{\,1} = \left( {x_{\,1} ,y_{\,1} ,z_{\,1} } \right)\quad P_{\,2} = \left( {x_{\,1} ,y_{\,1} ,z_{\,1} } \right)
$$
a continuación, un punto genérico $P$ en la línea que conecta los dos puntos será dada por
$$
P \en \overline {P_{\,1} P_{\,2} } \quad \Rightarrow \quad P = t\,P_{\,1} + \left( {1 - t} \right)P_{\,2}
$$
y al $0 \leqslant t \leqslant 1$ el punto se interna en el segmento, y otra externa.
El cuadrado del módulo de $P$ representa el cuadrado de su distancia desde el origen y que está dado por el producto escalar por sí mismo:
$$
\left| P \right|^{\,2} = P \cdot P = t^{\,2} \,P_{\,1} \cdot P_{\,1} + \left( {1 - t} \right)^{\,2} P_{\,2} \cdot P_{\,2} + 2t\left( {1 - t} \right)P_{\,2} \cdot P_{\,1}
$$
Los diversos productos de puntos son escalares, y bastante simple de calcular, y tiene una sencilla ecuación cuadrática.
Desde aquí se puede seguir dos enfoques posibles:
- Encontrar los puntos y, a continuación, su distancia
El punto de $P$ está restringido en la línea, a continuación, a constained a mentir sobre la esfera, justo equiparar $\left| P \right|^{\,2} $$R^2$, y resolver para $t$.
Los valores obtenidos se indicará si los puntos son internos/externos para el segmento.
Los dos puntos de intersección será entonces
$$
P_{a,\,b} = t_{a,\,b} \,P_{\,1} + \left( {1 - t_{a,\,b} } \right)P_{\,2}
$$
y la distancia le siguen, obviamente.
- Encontrar la distancia y, a continuación, los puntos
Ya que su objetivo es la longitud del segmento, entonces usted puede obtener más rápidamente
derivar la expresión de $\left| P \right|^{\,2}$ con respecto al $t$ y encontrar el valor de $t_0$
que se minimice.
$$
\begin{gathered}
0 = \frac{d}
{{dt}}\left| P \right|^{\,2} = 2P_{\,1} \cdot P_{\,1} \;t - 2\left( {1 - t} \right)P_{\,2} \cdot P_{\,2} + \left( {2 - 4t} \right)P_{\,2} P_{\,1} \hfill \\
\Rightarrow \left( {P_{\,1} \cdot P_{\,1} + P_{\,2} \cdot P_{\,2} - 2P_{\,2} P_{\,1} } \right)\;t - P_{\,2} \cdot P_{\,2} + P_{\,2} P_{\,1} = 0 \hfill \\
\end{reunieron}
$$
Esto se corresponde con el punto en el segmento que está más cerca del origen. Por lo tanto
$$
R^{\,2} - \left| P \right|^{\,2} (t_{\,0} ) = \left( {L/2} \right)^{\,2}
$$
y puede omitir la solución de la ecuación cuadrática.
A continuación, para encontrar los puntos de intersección, si es necesario, considere la posibilidad de que $t$ como se definió anteriormente es la medida
de la distancia relativa (es decir, "con el signo") de el punto de $P$ $P1$ a lo largo de la línea, en la dirección de la $P_1$$P_2$,
y normalizada vs la distancia absoluta entre el$P_2$$P_1$.
Por lo tanto
$$
P_{a,\,b} = P\left( {t_{\,0} \pm \frac{{L/2}}
{{\left| {P_{\,2} - P_{\,1} } \right|}}} \right)
$$