1 votos

¿Cómo encontrar el punto de intersección de dos esferas en movimiento?

Estoy escribiendo una simulación de dinámica de gases. He creado una simulación de dos grados de libertad, donde todas las moléculas de gas se representan como esferas duras y sus colisiones son perfectamente elásticas. Sin embargo, quiero llevar eso a tres dimensiones. Tengo las coordenadas XYZ de todas las esferas en movimiento, junto con sus vectores. Al restar la diferencia entre dos vectores, puedo simplificar el problema a una esfera en movimiento que colisiona con una esfera estacionaria. Podemos suponer que las esferas colisionarán porque se calcula que la esfera en movimiento se acercará más que la suma de los radios de las esferas.

¿Cómo puedo encontrar cuándo y dónde colisionarán las esferas?

Cualquier pensamiento sería muy apreciado, y avíseme si hay algo que pueda hacer para aclarar el problema.

0 votos

No has descrito los movimientos de las esferas.

0 votos

Lo siento, se están moviendo en línea.

0 votos

También debes describir la velocidad.

1voto

Glärbo Puntos 76

Utilicemos un sistema de coordenadas donde una de las esferas esté en el origen. La otra viaja a lo largo de una línea recta en dirección $\vec{p}_\Delta = (x_\Delta, y_\Delta, z_\Delta)$, en $\vec{p}_0 = (x_0, y_0, z_0)$ en el tiempo $t = 0$, y en $\vec{p}_0 + t \vec{p}_\Delta = (x_0 + t x_\Delta, y_0 + t y_\Delta, z_0 + t z_\Delta)$ en el tiempo $t$. Sea $R$ la suma de los radios de las dos esferas, es decir, la distancia entre los centros de las dos esferas que nos interesa. En el momento en que las dos esferas se tocan, tenemos $$\begin{aligned} \lVert \vec{p}_0 + t \vec{p}_\Delta \rVert &= R \\ \iff \quad \lVert \vec{p}_0 + t \vec{p}_\Delta \rVert^2 &= R^2 \\ \iff \quad (x_0 + t x_\Delta)^2 + (y_0 + t y_\Delta)^2 + (z_0 + t z_\Delta)^2 &= R^2 \\ \iff \quad (x_\Delta^2 + y_\Delta^2 + z_\Delta^2) t^2 + 2 (x_0 x_\Delta + y_0 y_\Delta + z_0 z_\Delta) t + (x_0^2 + y_0^2 + z_0^2 - R^2) &= 0 \\ \end{aligned}$$ Esta es una ecuación cuadrática en $t$, y se resuelve fácilmente: $$\begin{aligned} t = &- \frac{x_0 x_\Delta + y_0 y_\Delta + z_0 z_\Delta}{x_\Delta^2 + y_\Delta^2 + z_\Delta^2} \\ ~ &\pm \frac{\sqrt{R^2 ( x_\Delta^2 + y_\Delta^2 + z_\Delta^2) - (x_0 y_\Delta - y_0 x_\Delta)^2 - (x_0 z_\Delta - z_0 x_\Delta)^2 - (y_0 z_\Delta - z_0 y_\Delta)^2}}{x_\Delta^2 + y_\Delta^2 + z_\Delta^2} \\ \end{aligned}$$ Obviamente, solo los valores positivos de $t$ son interesantes, ya que solo esos corresponden a colisiones en el futuro.

El denominador, $\lVert \vec{p}_\Delta \rVert^2 = x_\Delta^2 + y_\Delta^2 + z_\Delta^2$, es cero solo cuando las dos esferas están estacionarias una con respecto a la otra (es decir, viajando en la misma dirección con la misma velocidad).

La expresión dentro de la raíz cuadrada es no negativa solo si las trayectorias son tales que las dos esferas se tocan/se intersecan en algún punto.


Si tienes dos esferas viajando a lo largo de líneas rectas, $\vec{a}_0 + t \vec{a}_\Delta$ y $\vec{b}_0 + t \vec{b}_\Delta$, la posición de la segunda esfera ($\vec{b}_0 + t \vec{b}_\Delta$) en un sistema de coordenadas donde la primera esfera está en el origen es $$\left\lbrace ~ \begin{aligned} \vec{p}_0 &= \vec{b}_0 - \vec{a}_0 \\ \vec{p}_\Delta &= \vec{b}_\Delta - \vec{a}_\Delta \\ \end{aligned} \right.$$ Calculando la expresión en la raíz cuadrada anterior, $$D = R^2 ( x_\Delta^2 + y_\Delta^2 + z_\Delta^2) - (x_0 y_\Delta - y_0 x_\Delta)^2 - (x_0 z_\Delta - z_0 x_\Delta)^2 - (y_0 z_\Delta - z_0 y_\Delta)^2$$ es suficiente para determinar si las trayectorias de las dos esferas pueden intersectarse: Si $D \lt 0$, no hay intersección. Si $D = 0$, hay una intersección. Si $D \gt 0$, hay dos intersecciones. Sin embargo, es necesario calcular $t$ como se indicó arriba, para averiguar si la(s) intersección(es) ocurre(n) en el futuro.

0voto

jMdA Puntos 16

Las esferas chocarán cuando sus centros estén a una distancia igual a la suma de sus radios. El punto de colisión es un punto en la línea entre los dos centros. Si tienes las coordenadas vectoriales de estos centros, debería ser relativamente fácil de calcular.

0voto

Yves Daoust Puntos 30126

$$\|(\vec c_0+t\vec v_0)-(\vec c_1+t\vec v_1)\|=r_0+r_1$$

o

$$(\vec{\Delta c}+t\vec{\Delta v})^2=\vec{\Delta c}^2+2\vec{\Delta c}\vec{\Delta v}\,t+\vec{\Delta v}^2\, t^2=(r_0+r_1)^2.$$

Resolver para $t$.

0 votos

No estoy muy familiarizado con esa notación, ¿para qué sirven las variables?

0 votos

@TrentConley: no es difícil de entender.

0 votos

Lo siento, estoy en la escuela secundaria y aún no he tomado una clase de álgebra lineal.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X