Mini curso · 19

Imán de partículas

Una rejilla de puntos que se dejan atraer por el cursor y vuelven a su lugar al alejarte. Puros vectores + easing en un canvas.

mueve el mouse
const dx = mx - p.x, dy = my - p.y;
if (Math.hypot(dx, dy) < RADIO) {   // cerca: lo atrae
  p.x += dx * 0.05;
  p.y += dy * 0.05;
} else {                             // lejos: vuelve a casa
  p.x += (p.baseX - p.x) * 0.06;
  p.y += (p.baseY - p.y) * 0.06;
}

Cada punto recuerda su casa (baseX, baseY). Cerca del cursor se acerca al mouse; lejos, vuelve. Ese único if es toda la ilusión.