Math 计算一段时间后加速物体的位置

Math 计算一段时间后加速物体的位置,math,physics,equation,Math,Physics,Equation,如何计算加速体(如汽车)在特定时间(如1秒)后的位置 对于一个不加速的运动物体,它是一个线性关系,所以我假设对于一个加速物体,它在某处包含一个正方形 有什么想法吗 方程为:s=ut+(1/2)a t^2 其中s为位置,u为t=0时的速度,t为时间,a为恒定加速度 例如,如果一辆汽车起步时静止不动,并以3米/秒^2的加速度加速两秒钟,它将移动(1/2)*3*2^2=6米 这个方程来自于对方程的解析积分,这些方程说明速度是位置变化率,加速度是速度变化率 通常在游戏编程的情况下,人们会使用稍微不同的公

如何计算加速体(如汽车)在特定时间(如1秒)后的位置

对于一个不加速的运动物体,它是一个线性关系,所以我假设对于一个加速物体,它在某处包含一个正方形

有什么想法吗

方程为:s=ut+(1/2)a t^2

其中s为位置,u为t=0时的速度,t为时间,a为恒定加速度

例如,如果一辆汽车起步时静止不动,并以3米/秒^2的加速度加速两秒钟,它将移动(1/2)*3*2^2=6米

这个方程来自于对方程的解析积分,这些方程说明速度是位置变化率,加速度是速度变化率

通常在游戏编程的情况下,人们会使用稍微不同的公式:在每一帧,速度和位置的变量不是从分析上集成的,而是从数值上集成的:

s = s + u * dt;
u = u + a * dt;
其中dt是帧的长度(使用计时器测量:1/60秒左右)。这种方法的优点是加速度可以随时间变化


编辑一些人注意到,数值积分的欧拉方法(如图所示)虽然是最简单的演示方法,但其精度相当低。有关改进的算法,请参见(通常用于游戏)和(科学应用的“标准”方法)。

您可以在谷歌上搜索它。我发现:

但如果你不想阅读,那就是:

p(t)=x(0)+v(0)*t+(1/2)在^2处

在哪里

  • p(t)=时间t处的位置
  • x(0)=时间零点的位置
  • v(0)=时间零点的速度(如果没有速度,可以忽略此项)
  • a=加速度
  • t=您当前的itme

假设你处理的是恒定加速度,公式是:

距离=(初始速度*时间)+(加速度*时间*时间)/2

在哪里

距离就是旅行的距离

初始速度是初始速度(如果物体处于初始静止状态,则为零,因此在这种情况下可以去掉该项)

时间就是时间

加速度是(恒定的)加速度

计算时请确保使用正确的单位,即米、秒等


这方面的一本好书是。

嗯,这取决于加速度是否恒定。如果是的话,那很简单

s = ut+1/2 at^2
如果a不是常数,则需要进行数值积分。现在有各种各样的方法,没有一种能比得上手工精确,因为它们最终都是近似解

最简单也是最不准确的是。在这里,您将时间划分为称为时间步长的离散块,并执行

v[n] = v[n-1] * t * a[t]
n
是索引,
t
是时间步长的大小。该职位也同样更新。这只适用于准确度不太重要的情况。Euler方法的一个特殊版本将产生弹丸运动的精确解(见wiki),因此,尽管该方法很粗糙,但它可以完美地用于某些情况


游戏和某些化学模拟中最常用的数值积分方法是,这是更通用的Verlet方法的一种特殊形式。如果Euler's太粗糙,我会推荐这个。

假设恒定加速度和初始速度v0

x(t) = (1/2 * a * t^2) + (v0 * t)

对于2D游戏,您必须同时对x和y(替换s)执行此操作,同时了解x和y方向上的速度和加速度。为3D物理添加z。需要注意的是,这种方法被称为Euler方法,通常是一种非常粗糙的方法,即使对于较小的步长,结果也不准确。如果使用这种方法,您需要先更新u,然后更新s(即,按照逻辑加速度=>速度=>位置推导路径,使用新计算的速度获得位置)。@Alan:这就是已知的方法。顺便说一下,如果加速度为常数,则位置的速度Verlet方程就是解析解
s+=vt+(在^2处)/2
你在第一行中提到过。同样的速度,也和Euler的一样。这个问题似乎是离题的,因为它是关于数学的,而不是编程。它是
v[n-1]+t*a[t]
t*a[t]
分量被添加到先前的速度中,而不是相乘。