当球在没有阻力的情况下弹性反弹时,该球的总能量(动能 + 势能)应始终保持不变。我创建了一个图表来确定它是否正常工作,但它没有。相反,它看起来像这样。
最后 4 或 5 个点应该被忽略,那些是旧数据(8 秒前)。图表在到达后面时从前面重新开始。
白色是总能量,青色是动能,绿色是势能。
能量计算公式:
double tempv = Math.sqrt(Math.pow(vx, 2) + Math.pow(vy, 2));
double h = (600 + -y + 53 - (0.5 * size)) / 100;
eKin = 0.5 * m * Math.pow(tempv, 2);
ePot = m * g * h;
eTot = eKin + ePot;
力的公式等。
double Fzw = g * m;
double Fb = rho * V * g;
Fd = 0;//0.5 * rho * Math.pow(vy, 2) * Cd * A;
if (vy > 0)
{
Fres = Fzw - Fd - Fb;
}
else
{
Fres = Fzw + Fd - Fb;
}
a = Fres / m;
vy += a * Main.dt;
我使用的公式和所有其他代码都可以在这里找到:https ://github.com/wuppy29/PWS/tree/master/src/com/wuppy/pws/src
我试图找出问题所在,但我不知道为什么它不起作用。有人有想法吗?