Colisión entre un "resorte" y una partícula

Actualmente estoy intentando crear un motor de física 2D simple y solo necesito saber cómo resolver una determinada colisión.

Tengo partículas, y entre dos partículas cualesquiera se pueden conectar resortes. Estos resortes pueden tener tensión y longitud variable. Ahora digamos que tengo otra partícula que choca con este resorte. Me gustaría resolver esta colisión como si el resorte no pudiera doblarse cuando la partícula lo golpea, sino que simplemente se comporta como lo haría un palo en el mundo real. Estoy almacenando las velocidades y posiciones de todas las partículas, no el momento angular, entonces, ¿cómo debo actualizar las velocidades de todas las partículas?

Necesita un elemento de viga en lugar de un elemento de resorte.
En mi propio código, este es un resorte, pero solo estoy preguntando cómo resolver la colisión si tratara el resorte como una viga de esa longitud en el momento en que chocan.

Respuestas (1)

Encuentre el centro de masa (CM) de las dos partículas conectadas. Luego, determine la distancia ( r ) desde el centro de masa de la parte del resorte donde la tercera partícula lo golpeó. Luego, si pudiera permitir un tiempo de colisión y una fuerza mientras está en contacto, y asumir que la colisión no tiene fricción (esto podría ser difícil para partículas puntuales y resortes delgados, porque el tiempo de desaceleración significa que podría tener suficiente tiempo para cruzar el otro lado ), podría usar T = Fr (r es la distancia de CM a la parte golpeada), suponga que la dirección de la fuerza es perpendicular al resorte (sin fricción) y F = Ma, luego T = IA = Fr.

Para el efecto de traslación de las dos partículas: Use F = Ma para encontrar la aceleración del centro de masa, a = F/M, donde M es la suma de la masa de dos resortes, luego aplique la aceleración a las dos partículas (aceleración es la misma dirección de la fuerza que es perpendicular al resorte).

Para el efecto de rotación: Fr = IA (A es la aceleración angular, I es el momento de inercia: I = m1(r1)^2 + m2(r2)^2, r1 y r2 son las distancias de las 2 partículas desde el centro de masa) , entonces A = Fr/I. Entonces (sea Q1, Q2 la aceleración tangencial de la partícula 1 y 2), Q1 = r1*A, Q2 = r2*A. Entonces podemos aplicar la aceleración tangencial a las dos partículas. si la parte del golpe del resorte está entre CM y la partícula 1, Q1 tendría la misma dirección que la fuerza y ​​Q2 tendría la dirección opuesta. si la parte del golpe del resorte está entre CM y la partícula 2, Q2 tendría la misma dirección que la fuerza y ​​Q1 tendría la dirección opuesta.

Para la tercera partícula que la golpeó: Justo F = ma. pero la dirección de esta fuerza es igual pero opuesta en dirección a la fuerza anterior (ley de reacción igual y opuesta)

En cuanto a la fuerza a usar, podría usar una fuerza que dependa de la distancia (más cercana) de la tercera partícula al resorte, y se activa cuando se alcanza una cierta distancia (digamos 0.5 unidades). Luego, tal vez use una fuerza creciente cuando se acerquen más y más (como una pelota que rebota), digamos, por ejemplo, el potencial de Lennard Jones, donde F = -dU/dx.

¿Puede aclarar lo último, por favor?
@ 2.71828-asy El último bit es un 1.
Para la fuerza entre la tercera partícula y el resorte, puede usar cualquier fuerza repulsiva, es decir, la fuerza del resorte: F = kx, la fuerza electrónica: F = k/(x^2), o similar. Solo asegúrese de que sea cero a una distancia específica (por ejemplo, agregando alguna constante) y aumentando la fuerza a medida que la distancia se hace más pequeña. La fuerza se sentirá cuando la distancia entre la partícula y el resorte sea <= distancia especificada. Si usa 'fuerza de resorte', por ejemplo, use F = k (x0-x), x0 es la distancia especificada (digamos 0.5) y x es la distancia de la tercera parte y el resorte.
k podría ser cualquier cosa, pero es posible que desee hacerlo grande, si desea que rebote más rápido. Luego, solo aplique la fuerza si la distancia de la tercera partícula y el resorte es <= 0.5, y no cuando estén lejos.
Debo admitir que este no es el método perfecto, ya que podría no conservar energía a largo plazo. Es decir, la energía total inicial de las partículas (que puede verse en parte por sus velocidades) en un momento dado, podría no ser la misma más adelante en la simulación. debido a la aproximación de la aceleración en el intervalo de tiempo dt. Preferiría usar la técnica de colisión instantánea, sin depender de calcular aceleraciones y fuerzas, pero desafortunadamente, no conozco las fórmulas cuando se usa en movimientos de rotación. Con suerte, alguien podría proporcionar esa alternativa.