Modelos para la Simulación de Movimiento de Cuerpos
Modelo Tiro al Blanco
En este modelo se tienen dos clases de cuerpos en movimiento:
blancos y balas.Si chocan
, se elimina el blanco. OJO: ¿Qué significa que "choquen"? Difícilmente los números de la posición x e y coincidan, por lo que habrá que aceptar que si "están cerca", chocan.Puede incluir puntajes para el "cazador" que dispara, sonidos de balas, una palomita o un avión volando como móvil, en fin, cualquier cosa que surja de su imaginación.
Modelo El Amo y el Perro
Adaptado de: Rice and Rice Ciencia de la Computación, Interamericana, México, 1973
Presentaremos ahora el clásico problema del amo y el perro, en el que se basa la simulación de los misiles que se dirigen a un blanco móvil.
El amo va caminando por un prado (con velocidad v constante), y llama a su perro. En ese momento, y a partir de entonces, el perro se dirige al amo (también con velocidad v constante, pero diferente), que a su vez va cambiando de posición. Se trata de ver la trayectoria del perro, y si encuentra o no al amo antes de que salga del prado.
Al comienzo, el amo parte del borde izquierdo de la pantalla, a una altura del 90% con una velocidad horizontal vx =constante, y con velocidad vertical vy=0. El perro parte con velocidad horizontal vx =0 , y velocidad vertical vy = v.
El amo se mueve siempre sólo en dirección horizontal, y al llegar al límite del prado, supondremos que vuelve ("rebota"), por lo que cambia el signo de su velocidad vx. Esto continúa indefinidamente.
El perro cambia permanentemente su dirección, con un ángulo cuya tangente es (ya-yp)/(xa-xp), por lo que el ángulo es el arco tangente de este cociente. Sin embargo, la función del arco tangente no nos puede decir en qué cuadrante está el ángulo.
Calcularemos entonces el valor absoluto del arco tangente del cociente, y analizaremos el cuadrante del ángulo según los signos del numerador y del denominador:
Por último, notemos que para evitar la división por cero, si xa=xp, ambos tienen la misma posición vertical, por lo que el ángulo es 0 o 2
p .Este modelo se aplica para todos los casos de persecución, algunos de ellos pueden ser:
NOTAS: para que los objetos que mueva parezcan más naturales, use al menos dos imágenes, por ejemplo mirando hacia la izquierda si se mueve en esa dirección, y hacia la derecha si se mueve en dirección opuesta. Para que el programa no sea aburrido, y dé siempre el mismo comportamiento, las velocidades deben ser aleatorias, con alguan distribución (ya las conoce). Se espera además, un producto multimedia, que pueda utilzarse como salvapantalla.
Suponga que en una mesa hay 3 clases de insectos: #1, #2, #3. El #3 trata de cazar al #2, el #2 de cazar al #1, y el #1 trata de cazar al #3. Parten de posiciones generadas al azar, y cada uno se mueve en dirección al insecto que trata de alcanzar. Considere que hay varios insectos de cada clase.
En el océano, ocurre que el tiburón come bacalao, el bacalao come arenque y el arenque come camarón. Suponga que tenemos uno de cada uno en el agua, y que cada uno empieza a cazar su presa.
Cada vez que el arenque se acerca al camarón, éste nada alocadamente tratando de escapar: aumenta su velocidad, pero sólo durante corto período de tiempo, pues "se cansa".
Una de las persecuciones más famosas en el mundo es la del coyote con el correcaminos. El correcaminos es mucho más rápido que el coyote, pero se distrae comiendo, por lo que, si está suficientemente lejos del coyote, se para y se pone a comer. OJO: el correcaminos, cuando el coyote está "cerca", se aleja corriendo, pero a veces, el coyote se le acerca demasiado (esto se puede lograr haciendo que la distancia sea una variable aleatoria con distribución normal). Cuando el correcaminos se pone a correr, parte con una velocidad inicial v=0, y con una aceleración a=cte. hasta que el módulo de la velocidad alcanza un cierto valor; luego, la aceleración es igual a cero.
Simulemos el perro con el amo: cuando el perro alcanza al amo, éste le arroja un palo, y el perro corre para recogerlo. Luego se lo vuelve a traer al amo (cuando le da el palo, por supuesto el perro ladra, para que se lo vuelva a tirar). El amo camina por toda la pantalla, y este juego continúa indefinidamente.
Movimiento de Cuerpos Celestes
A partir del libro de Rice and Rice, simular:
La trayectoria de la Luna alrededor de la Tierra. Suponga que después de pasados aproximadamente 3 meses, aparece un aerolito gigantesco, con una masa que se ingresa por pantalla, y velocidades vx y vy también ingresadas por pantalla. ¿Desajusta la trayectoria de la Luna? ¿Choca con la Tierra o con la Luna? ¿No pasa nada?
Nuestro sistema planetario completo. Olvide los satélites (son muchos).
La trayectoria de la Luna alrededor de la Tierra. De la Tierra parte un cohete con una velocidad vertical constante (se ingresa por pantalla), durante un "corto" período de tiempo t1. Debe "acertarle" a la Luna, por lo que debe ingresarse por pantalla el momento de partida del cohete, o la posición relativa de la luna en el momento de partida.
Mesa de pool
En una mesa de pool (con una tronera en cada esquina) hay una bola blanca en la parte inferior de la pantalla. El jugador ingresa por pantalla el ángulo con la vertical con el que quiere "pegarle" a la bola. El objetivo es que la bola ingrese a una de las troneras después de 1, 2, 3 o 4 rebotes con el borde de la mesa. Se computará un punto por cada rebote, y -4 puntos si después de 4 rebotes la bola no entra en una tronera.
Fuegos artificiales
Considere el modelo de Caída libre. A partir de este problema, puede simular Fuegos artificiales: desde la parte inferior de la pantalla sale una luz, con una velocidad constante, e inclinación aleatoria (con distribución uniforme) dentro del rango de -0.9
P radianes y 0.9 P radianes. Al llegar a una altura con una distribución triangular y parámetros a=0,4 maxY; b=0,8 maxY; c=0,95 maxY, "explota". Es decir, caen otras luces (digamos unas 10), con velocidades diferentes, de modo que se forma un ramillete de luces cayendo.Flujo de Tráfico
A partir del libro de Rice and Rice, simular el flujo de tráfico para una carretera circular.
Resorte
En la parte superior de la pantalla, aparecen n muñecos de masa m, cada uno atado a un resorte. Uno a uno se van soltando, con lo que los muñecos caen, pero, al estar sujetos al resorte, empiezan a oscilar de arriba abajo. Las fuerzas intervinientes son: la gravedad, la fuerza recuperadora del resorte, y el amortiguamiento del resorte.
Debido a la gravedad, hay una aceleración hacia abajo.
componente de la gravedad = cte.
Debido al elástico, hay una aceleración en dirección contraria a la de su velocidad vertical, y proporcional al estiramiento y (k es la constante de proporcionalidad, e y es el estiramiento.
componente del elástico = - (k/m) y
Además, hay un amortiguamiento a medida que pasa el tiempo, por lo que la aceleración tiene una componente que actúa proporcional (
m es la constante de proporcionalidad) a la velocidad, pero con signo opuesto:componente de amortiguamiento = -
m vEstas 3 componentes se suman:
aceleracion = cte. - (k/m) y -
m vCon la aceleración, ya se pueden calcular las velocidades y las sucesivas posiciones de los muñecos.
El resorte, desde luego, se debe estirar, lo que se consigue cambiando la propiedad height (altura).