为什么我应该在弹丸运动中使用速度方程而不是位置方程
Why should I use velocity equations instead of position ones in Projectile Motion
我有一个问题,我在 this answer 中看到,在 Projectile Motion 中速度方程比位置方程更好。有人可以解释一下吗,我为什么要那样做?
我为什么要问这个?我试图模拟水平、垂直和抛射运动,现在,当我几乎完成所有操作后,我开始想知道如何添加空气阻力,这样它看起来会更逼真。
我见过的几乎所有解决方案都在这里使用速度方程。
我想知道我是否可以根据位置方程添加空气阻力,或者必须在这里使用速度方程。
到目前为止,我已经完成了这段代码,而且效果很好。
else if (whichThrow == 3) {
while (t < totalTime) {
tempX = velocity[0] * t;
tempY = velocity[1] * t - (acceleration / 2)*t*t;
t += step;
coords.push_back(make_pair(tempX, tempY));
printf("[%f][%f]\n", tempX, tempY);
}
}
如果我们模拟运动,会有很多外力作用在物体上,如重力、碰撞、风等。如果做成速度会更方便,因为它可以在加速度和位置之间互换。
既然你提到了定义为 [Wikipedia] 的空气阻力:
其中:
F为阻力,定义为流速方向的分力,
为流体的质量密度,[1]
是相对于物体的流速,
为参考区,
为阻力系数,
我们知道运动与速度有关。为了更清楚,您可以访问 this.
我有一个问题,我在 this answer 中看到,在 Projectile Motion 中速度方程比位置方程更好。有人可以解释一下吗,我为什么要那样做?
我为什么要问这个?我试图模拟水平、垂直和抛射运动,现在,当我几乎完成所有操作后,我开始想知道如何添加空气阻力,这样它看起来会更逼真。 我见过的几乎所有解决方案都在这里使用速度方程。 我想知道我是否可以根据位置方程添加空气阻力,或者必须在这里使用速度方程。
到目前为止,我已经完成了这段代码,而且效果很好。
else if (whichThrow == 3) {
while (t < totalTime) {
tempX = velocity[0] * t;
tempY = velocity[1] * t - (acceleration / 2)*t*t;
t += step;
coords.push_back(make_pair(tempX, tempY));
printf("[%f][%f]\n", tempX, tempY);
}
}
如果我们模拟运动,会有很多外力作用在物体上,如重力、碰撞、风等。如果做成速度会更方便,因为它可以在加速度和位置之间互换。
既然你提到了定义为 [Wikipedia] 的空气阻力:
其中:
F为阻力,定义为流速方向的分力,
为流体的质量密度,[1]
是相对于物体的流速,
为参考区,
为阻力系数,
我们知道运动与速度有关。为了更清楚,您可以访问 this.