- Ej1 - Montaña rusa
- Ej2 - Movimiento circular uniforme
- Ej3 - Particula osciladora
- Ej4 - Lanza burbujas
- Ej5 - Espiral
- Ej6 - Tiro parabóolico y plano inclinado
- PRACTICA 1 - Metodos numericos de integración
- Ej1 - Localizar celdas
- Ej2 - Emisor tipo Humo y emisor tipo Fuente
- Ej3 - Partícula flotante y emisor tipo Splash
- Ej4 - Modelos de colisión entre partículas
- PRACTICA 2 - Sistema de particulas - Fuegos artifiales
- PRACTICA 3 - Estudio de los modelos de colision y estructura de datos
- Ej1 - Cuerda
- PRACTICA 4 - Estructuras masa-muelle - BANDERAS
- PRACTICA 5 - Simulación de ondas - MAR
- TEMA 1 - CONCEPTOS BÁSICOS E INTEGRADORES NUMÉRICOS
- TEMA 2 - SISTEMAS DE PARTÍCULAS Y ESTRUCTURAS DE DATOS
- TEMA 3 - OBJETOS DEFORMABLES
Modelos de colisión entre partículas
Vamos a ver la colisión entre partículas como la interacción entre 2 partículas que durante el contacto, intercambian energía que modifica su movimiento. Vamos a ver dos modelos de simular la colisión entre dos partí, el modelo del muelle y el modelo de las velocidades de salida.
En general vamos a distinguir 3 fases, la detección, que es común en los dos métodos que vamos a ver, el reposicionamiento y la respuesta.
En la fase de detección hemos de comprobar la distancia a la que se encuentranlas dos partís, si ésta es menos que la suma de los radios de ambas partículas, hay colisión, por lo que pasaremos a la siguiente fase. Para calcular la distancia entre partículas hemos de calcular la distancia entre la posición de los centros de ambas part&icute;culas, es decir, calcular el módulo del vector que une ambos centros.
DETECCIÓN
distancia = | posicion2 - posicion 1 |
distacia_minima = radio2 - radio1
si distancia < distancia_minima --> HAY COLISIÓ
MODELO MUELLE
Calculamos el ángulo de colisión. La posición a la que irán las partículas con el seno y el coseno del ángulo que se forma entre los centros.
La nueva aceleración dependerá de la posición objetivo y una constante de elasticidad. Por último actualizaremos las velocidades con la aceleración calculada.
angulo = arcotangente(distancia.x, distancia.y)
objetivo.x = posicion1.x + cos(angulo) - distancia_minima
objetivo.y = posicion1.y + sen(angulo) - distancia_minima
aceleracion = (objetivo - posicion1) * cte_elástica
Actualización de la velocidad
velocidad = velocidad + aceleración
MODELO VELOCIDADES DE SALIDA
Comenzamos descomponiendo la velocidad en tangencial y normal.
vel_normal = proyeccion(velocidad, distancia)
vel_tangencial = velocidad - vel_normal
Fase 2: restitución
L = distancia_minima - distancia = lo que ha penetrado una partícula en la otra.
vel_relativa = |(vel_normal1 - vel_normal2)|
pos1_nueva = pos1 + (vel_normal1 - L/vel_relativa)
Fase 3: Cálculo de las velocidades de salida
Escalar u1 = proyeccion(normal, distancia)
modulo v1 = (((masa1 - masa2)*u1 + 2*masa2*u2)/ masa1 + masa2)
vel_normal' = |distancia| * v1
velocicidad1' = vel_normal' + tangencial