/* Variablendeklaration */
...
var FREE; // Status der Masse-Bewegung Loslösung der Masse
var TOUCH; // Status der Masse-Bewegung Landen der Masse
var FIRST = false; // Status für händische Masse-Bewegung
...
function setup()
{
...
}
function draw()
{
...
if (START)
{
...
}
else
{
startDiagram = true;
vyf = vyf + (-2*delta*vyf -n*(yf-l_)/m - g)*dt; // Berechnung DGl. Feder-Masse
yf = yf + vyf*dt;
vyk = vyk - g*dt; // Berechnung DGl. Masse freier Fall
yk = yk + vyk*dt;
if (yk > yf)
{ //Masse nicht mit Feder verbunden: Freier Fall
m = mf; // nur Federmasse wirksam
TOUCH = false;
}
else
{ //Schwingung
if(TOUCH)
{ //erste Berührung Kugel-Feder
if (yf > l_ && !FREE)
{ // Parameterübergabe Feder -> Masse
FREE = true; //<>//
m = mf; // Feder schwingt nur mit Federmasse
}
else
{
FREE = false;
m = mf + mk; // effektive Masse = Feder- + Kugelmasse
}
vyk = vyf; // Parameterübergabe Feder -> Masse
if (!result[0]) yk = yf; // Parameterübergabe Ort, wenn nicht von Hand bewegt
}
else
{
TOUCH = true;
m = mf + mk;
vyf = vyk; // Parameterübergabe Masse -> Feder
yf = yk;
}
}
}