在盒子里模拟插孔(物理和lua)

时间:2014-04-13 11:23:48

标签: lua physics

function jackInTheBox(time) 
 y = amplitude * math.cos(frequency * time * 2 * math.pi) / math.exp(decay * time)  
return y end

以上功能是模拟盒子中的插孔(当你打开盒中的插孔时,弹簧加载的“Jack”用力弹出,然后随着时间的推移更慢地晃动,直到它停止我们可以借助一点三角函数来模拟盒中插孔。) 但是由于什么原因我们使用余弦波来计算呢?如果要使用正弦或余弦,我总是感到困惑。之后唯一的原因是千斤顶沿着x轴以一定的速度左右摆动?或者更重要的是什么?

1 个答案:

答案 0 :(得分:2)

正弦与由pi / 2弧度转换的余弦相同。换句话说,它们仅相差pi / 2。因此,除了相位由初始条件确定之外,使用哪个函数无关紧要:在t = 0时,弹簧处于y = y0(通常速度为零,但这不是必需的)。由此确定相位,但如果速度为0,则您知道弹簧必须位于波峰处。如果选择正弦,则在t = 0时正弦a * t为0,因此您需要相位为pi / 2。如果选择余弦,则t = 0已经处于函数峰值,因此相位为零。

使用的功能和由弹簧的初始非零角度与垂直方向的组合,在弹簧CofM上施加扭矩的重力以及可能在弹簧的横截面上的不均匀垂直压缩引起的侧向运动之间没有关系。引起一些弯曲,从而将压缩与水平CofM运动耦合在一起。

总而言之,您可以使用其中任何一个,但在给定初始条件的情况下,使用余弦导致更简单的方程。其他初始条件可能导致正弦分离为更简单的等式,而其他条件的任何一个功能都具有相似的复杂性。