diff options
author | Nat Lasseter <Nat Lasseter nathan@bytemark.co.uk> | 2017-06-28 19:55:45 +0100 |
---|---|---|
committer | Nat Lasseter <Nat Lasseter nathan@bytemark.co.uk> | 2017-06-28 19:55:45 +0100 |
commit | 1c2acd3320963884821d52530b24637abd88354f (patch) | |
tree | 1a864fdb635b507c639270943c31b01f172c1d18 | |
parent | 993442813dbee7805ef18146113872cae5892e99 (diff) |
Causally air resistance.
-rw-r--r-- | particle.js | 6 | ||||
-rw-r--r-- | sketch.js | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/particle.js b/particle.js index 66f4f6e..c62dd47 100644 --- a/particle.js +++ b/particle.js @@ -9,6 +9,12 @@ function Particle(x, y, m, c) { this.acc.add(p5.Vector.div(force, this.mass)); } + this.applyDrag = function(drag_coeff) { + var rev_vel = createVector().sub(this.vel); + var drag = rev_vel.mult(drag_coeff); + this.applyForce(drag); + } + this.update = function() { this.vel.add(this.acc); this.pos.add(this.vel); @@ -1,5 +1,6 @@ var ps = []; var gravity; +var air_resistance = 0.5; var wid = 800; var hei = 600; @@ -14,6 +15,7 @@ function draw() { for(var i = ps.length - 1; i >= 0; i--) { ps[i].applyForce(gravity); + ps[i].applyDrag(air_resistance); ps[i].update(); stroke(ps[i].colour); @@ -30,7 +32,7 @@ function draw() { mouseX, mouseY, random(2, 8), color(random(0, 360), random(90, 100), random(50, 100)) ); - p.applyForce(createVector(random(-40, 40), random(-150, 0))); + p.applyForce(createVector(random(-200, 200), random(-400, 0))); ps.push(p); } } |