diff options
author | David Robillard <d@drobilla.net> | 2013-12-31 16:11:09 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-12-31 16:11:09 +0000 |
commit | 023925ef7ecf8314e51f2bb14717f88b92240438 (patch) | |
tree | 3c6ca435f3664176075bea3b01c7d9b4c6d8d577 /src/fdgl.hpp | |
parent | b3ba7ad25ce0a6b76bcff21aaf1e8311b2198b4f (diff) | |
download | ganv-023925ef7ecf8314e51f2bb14717f88b92240438.tar.gz ganv-023925ef7ecf8314e51f2bb14717f88b92240438.tar.bz2 ganv-023925ef7ecf8314e51f2bb14717f88b92240438.zip |
FDGL: Make repelling forces directionally proportional to area for tighter spacing.
git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@5241 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/fdgl.hpp')
-rw-r--r-- | src/fdgl.hpp | 6 |
1 files changed, 4 insertions, 2 deletions
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; } |