Symulacja potrzebna do przygotowania efektu graficznego na pewne urządzenie.
Kółko reprezentuje masę poruszającą się wzdłuż osi X ze sprężyną zamocowaną w środku układu. Wprowadzono tłumienie prędkości symulujące opory otoczenia. Slider pozwala zaaplikować zewnętrzną siłę (można sobie to wyobrazić jak przechylanie kulki na desce przyczepionej sprężyną).
Kod:
let slider;
function setup() {
createCanvas(400, 400);
slider = createSlider(-100, 100, 0);
slider.position(50, 350);
slider.size(300);
}
let x=0, vel=0, a=0, f=0;
const mass = 50;
const k = .8;
const damping = 0.1;
function draw() {
background(220);
translate(width / 2, height / 2);
point(0,0);
f = -1*k*x+slider.value();
a = f/mass; //external force
vel += a;
vel = vel - vel * damping;
x+=vel;
fill(0, 0, 0);
text('x = '+x.toFixed(2), -180, -180);
text('v = '+vel.toFixed(2), -180, -160);
text('a = '+a.toFixed(2), -180, -140);
text('f = '+f.toFixed(2), -180, -120);
text('external force = '+slider.value(), -140, 140);
fill(200, 200, 255);
circle(x,0,10);
}
Demo: