【发布时间】:2009-07-06 17:03:32
【问题描述】:
我已经为此尝试了典型的物理方程,但它们都没有真正起作用,因为方程处理恒定加速度,而我的方程需要更改才能正常工作。基本上,我有一辆可以在很大范围内行驶的汽车,当它到达路径的尽头时,需要在给定的距离和时间内减速和停车。
所以,我有:V0,或当前速度Vf,或我想要达到的速度(通常为 0)t,或我的时间量想要到达我的路径的尽头d,或者当我从 V0 变为 Vf 时我想要走的距离
我要计算a,或者从V0到Vf所需的加速度
这成为一个特定于编程的问题的原因是因为a 需要在汽车不断停止时在每个时间步重新计算。因此,V0 不断地从上一个时间步 plus 更改为 V0,即上一个时间步计算的 a。所以本质上它会开始慢慢停止,然后最终会更突然地停止,有点像现实生活中的汽车。
编辑:
好的,感谢您的精彩回复。我需要的很多东西只是思考这个问题的一些帮助。现在让我更具体一些,因为我从你们那里得到了更多的想法:
我有一辆车c,它是从目的地64 pixels,所以d=64。它在2 pixels per timestep 行驶,其中timestep is 1/60 of a second。我想找到加速度a,它会在它经过d时达到0.2 pixels per timestep的速度。d = 64 //distanceV0 = 2 //initial velocity (in ppt)Vf = 0.2 //final velocity (in ppt) p>
同样因为这发生在游戏循环中,变量delta 被传递给每个动作,即multiple of 1/60s that the last timestep took。换句话说,如果花费了 1/60s,那么 delta 是 1.0,如果花费了 1/30s,那么 delta 是 0.5。在实际应用加速度之前,它乘以这个增量值。同样,在汽车再次移动之前,它的速度乘以 delta 值。这是相当标准的东西,但它可能是导致我的计算出现问题的原因。
【问题讨论】:
-
对不起,我觉得你对物理学的理解有些混乱。 F = ma 告诉您变化的加速度与变化的力有关。汽车在现实生活中不会“更突然”停下来,除非你用力踩踏板来增加制动力。
-
@duffymo:从技术上讲,当事情从慢到停止时,你会感觉到减速结束时的猛拉,因为动态摩擦让位于静态摩擦;静摩擦大于动摩擦。
-
...但是,如果您想获得详细信息,则必须对传输以及道路与轮胎之间以及轮胎与底盘之间的弹性进行建模。
-
@Jason S:当实际减速度降至零时,悬架也会弹回。结合静摩擦钻头,这使得乘客的体验相当复杂。
标签: physics acceleration