9. Partícula rebotando: variables, random() e if

Paso 1/4 de práctica 2 "Partículas conectadas"

En esta práctica vas a crear una simulación de partículas en movimiento que se conectan entre sí cuando están cerca. El resultado es una red animada que cambia continuamente, similar a las visualizaciones que aparecen en fondos de pantalla o en gráficos de datos en movimiento.

Empezamos con lo más sencillo: una única partícula que se desplaza por el lienzo y rebota en los bordes.

Nota

Este tutorial presupone que conoces setup(), draw(), background(), circle(), stroke(), fill() y random(). Si alguno de estos conceptos te resulta poco familiar, repasa la práctica 1 antes de continuar.

Posición y velocidad

La partícula tiene cuatro variables: su posición (x, y) y su velocidad (vx, vy). En cada fotograma sumamos la velocidad a la posición, y la partícula se desplaza:

../_images/javascript-eg-201.png

Ejecuta el código. Verás una partícula que sale disparada en una dirección aleatoria… y desaparece por el borde. Necesitamos que rebote.

El rebote con if

Para que la partícula rebote invertimos su velocidad cuando toca un borde. Si sale por la derecha (x > width), vx se vuelve negativa y la partícula empieza a moverse hacia la izquierda. Es como una pelota que choca contra una pared.

Para conseguir esto, necesitas este bloque de código. ¿Dónde lo colocarías?:

../_images/javascript-eg-202.png

Ahora la partícula rebota indefinidamente sin salirse del lienzo.

¿Qué hace el operador ||?

|| significa «o». La condición x < 0 || x > width se lee: «si x es menor que 0 o x es mayor que el ancho del lienzo». Basta con que una de las dos sea verdadera para que se ejecute lo que hay dentro de las llaves.

Experimenta

Prueba a cambiar el rango de random(-3, 3) a random(-8, 8). ¿Qué efecto tiene sobre el movimiento? ¿Y si usas random(1, 3) sin valores negativos?