diff options
-rw-r--r-- | src/Canvas.cpp | 2 | ||||
-rw-r--r-- | src/fdgl.hpp | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/Canvas.cpp b/src/Canvas.cpp index b1d8900..abf809f 100644 --- a/src/Canvas.cpp +++ b/src/Canvas.cpp @@ -768,7 +768,7 @@ GanvCanvasImpl::layout_calculate(double dur, bool update) static const double SPRING_K = 48.0; // A light directional force to push sources to the top left - static const double DIR_MAGNITUDE = -2000.0; + static const double DIR_MAGNITUDE = -2200.0; Vector dir = { 0.0, 0.0 }; switch (_gcanvas->direction) { case GANV_DIRECTION_RIGHT: dir.x = DIR_MAGNITUDE; break; diff --git a/src/fdgl.hpp b/src/fdgl.hpp index 704eb4f..83d9981 100644 --- a/src/fdgl.hpp +++ b/src/fdgl.hpp @@ -16,7 +16,7 @@ #include <float.h> #include <math.h> -static const double CHARGE_KE = 100000000.0; +static const double CHARGE_KE = 200000000.0; struct Region { Vector pos; @@ -109,5 +109,7 @@ repel_force(const Region& a, const Region& b) const double mag = vec_mag(vec); const Vector force = vec_mult( vec, (CHARGE_KE * 0.5 / (mag * mag * mag * mag * mag))); - return vec_mult(force, vec_mult(a.area, b.area)); + const Vector dforce = { force.x * (a.area.x * b.area.x), + force.y * (a.area.y * b.area.y) }; + return dforce; } |