diff --git a/CLAUDE.md b/CLAUDE.md index f6f6f21..37672a2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -387,30 +387,36 @@ position += velocity * deltaTime ### Constantes Físicas Ajustables ```cpp -// En defines.h +// En defines.h (VALORES ACTUALES - Amortiguamiento crítico) ROTOBALL_SPRING_K = 300.0f; // Rigidez resorte -ROTOBALL_DAMPING_BASE = 15.0f; // Amortiguación lejos -ROTOBALL_DAMPING_NEAR = 50.0f; // Amortiguación cerca +ROTOBALL_DAMPING_BASE = 35.0f; // Amortiguación lejos (crítico ≈ 2*√k*m) +ROTOBALL_DAMPING_NEAR = 80.0f; // Amortiguación cerca (absorción rápida) ROTOBALL_NEAR_THRESHOLD = 5.0f; // Distancia "cerca" (px) ROTOBALL_MAX_FORCE = 1000.0f; // Límite fuerza (seguridad) ``` +**Changelog de Ajustes:** +- **v1:** `DAMPING_BASE=15.0, NEAR=50.0` → Oscilación visible (subdamped) +- **v2:** `DAMPING_BASE=35.0, NEAR=80.0` → **Absorción rápida sin oscilación** ✅ + ### Ajustes Recomendados -**Si oscilan demasiado:** +**Si siguen oscilando (poco probable):** ```cpp -ROTOBALL_DAMPING_BASE = 25.0f; // Más amortiguación -ROTOBALL_DAMPING_NEAR = 70.0f; // Estabilización fuerte +ROTOBALL_DAMPING_BASE = 50.0f; // Amortiguamiento super crítico +ROTOBALL_DAMPING_NEAR = 100.0f; // Absorción instantánea ``` -**Si tardan en llegar:** +**Si llegan muy lento:** ```cpp -ROTOBALL_SPRING_K = 500.0f; // Resorte más rígido +ROTOBALL_SPRING_K = 400.0f; // Más fuerza +ROTOBALL_DAMPING_BASE = 40.0f; // Compensar con más damping ``` -**Si se "pegan" muy rápido (sin inercia visible):** +**Si quieres más "rebote" visual:** ```cpp -ROTOBALL_DAMPING_NEAR = 30.0f; // Menos amortiguación cerca +ROTOBALL_DAMPING_BASE = 25.0f; // Menos amortiguación +ROTOBALL_DAMPING_NEAR = 60.0f; // Ligera oscilación ``` ### Ventajas del Sistema diff --git a/source/defines.h b/source/defines.h index e481840..8da12f8 100644 --- a/source/defines.h +++ b/source/defines.h @@ -74,8 +74,8 @@ constexpr int ROTOBALL_MAX_BRIGHTNESS = 255; // Brillo máximo (frente, 0- // Física de atracción RotoBall (sistema de resorte) constexpr float ROTOBALL_SPRING_K = 300.0f; // Constante de rigidez del resorte (N/m) -constexpr float ROTOBALL_DAMPING_BASE = 15.0f; // Amortiguación base (lejos del punto) -constexpr float ROTOBALL_DAMPING_NEAR = 50.0f; // Amortiguación cerca del punto (estabilización) +constexpr float ROTOBALL_DAMPING_BASE = 35.0f; // Amortiguación base (amortiguamiento crítico ≈ 2*√k*m) +constexpr float ROTOBALL_DAMPING_NEAR = 80.0f; // Amortiguación cerca del punto (absorción rápida) constexpr float ROTOBALL_NEAR_THRESHOLD = 5.0f; // Distancia "cerca" en píxeles constexpr float ROTOBALL_MAX_FORCE = 1000.0f; // Fuerza máxima aplicable (evita explosiones)