xxxxxxxxxx
41
class Particle {
constructor(x, y) {
this.pos = createVector(x, y); // position
this.prev = createVector(x, y);
//this.vel = p5.Vector.random2D(); // veloctiy
this.vel = createVector(0, 0); // veloctiy
//this.vel.setMag(random(2,5));
//this.vel.setMag(random(2,5));
this.acc = createVector(); // acceleration
}
update() {
this.vel.add(this.acc);
this.pos.add(this.vel);
this.acc.mult(0);
}
applyForce(force) {
this.acc.add(force);
}
show() {
stroke(255, 25);
strokeWeight(1);
line(this.pos.x, this.pos.y, this.prev.x, this.prev.y);
this.prev.x = this.pos.x;
this.prev.y = this.pos.y
}
attracted(target) {
// var dir = target - this.pos
var force = p5.Vector.sub(target, this.pos);
//var d = force.mag();
var dsquared = force.magSq();
dsquared = constrain(dsquared, 1, 500)
var G = 100;
var strength = G / dsquared;
force.setMag(strength);
this.applyForce(force);
}
}