if (START) { y = l0; // Startort = Ruhefederlänge vy = 0; if (steps.drawButton(true)) // Schrittweite ändern { if (I < 16) I = I*2; else I = 1; dt = 1.0/(I*frmRate); } if (INIT) { INIT = true; START = false; t = 0; dt = 1/(I*frmRate); } } else { ... for (var i = 0; i < I; i++) { // I-fache Wiederholung der Berechnung zur Zeitkorrektur // leapfrog vy_ = vy + (g - 2*d*vy - sq(omega0)*(y-l0))*dt/2; y = y + vy_*dt; vy = vy_ + (g - 2*d*vy_ - sq(omega0)*(y-l0))*dt/2; t = t + dt; ... } }