xxxxxxxxxx
43
let pendulum1;
function setup() {
createCanvas(400, 400);
pendulum1 = new Pendulum(createVector(width/2,0));
}
function draw() {
background(220);
pendulum1.update();
pendulum1.show();
}
class Pendulum{
constructor(origin){
this.length = 175;
this.origin = createVector(origin.x,origin.y);
this.bob = createVector(this.origin.x,this.length);
this.angle = PI/4;
this.angleAcc = 0;
this.angleVel = 0;
this.size = 32;
this.mass = 1;
}
update(){
//Fp = Fg * sin(theta)
this.angleAcc = -0.01 * this.mass * sin(this.angle);
this.angle += this.angleVel;
this.angleVel += this.angleAcc;
this.angleVel *= 0.97;
this.bob.x = this.origin.x + this.length*sin(this.angle);
this.bob.y = this.origin.y + this.length*cos(this.angle);
}
show(){
stroke(0);
fill(100);
line(this.origin.x,this.origin.y,this.bob.x,this.bob.y);
circle(this.bob.x,this.bob.y,this.size);
}
}