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:
01020304050607080910111213141516171819202122232425262728293031323334let
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: