将转储添加到JS Pendulum

时间:2014-05-25 15:52:07

标签: javascript math canvas

Pendulum有一个很好的JS Canvas示例。它很有趣。
http://rosettacode.org/wiki/Animate_a_pendulum#JavaScript_.2B_.3Ccanvas.3E
但它作为一个“时钟”钟摆 - 它永远不会停止 我怎么能阻止它,就像一个简单的钟摆通常会及时停止? 非常感谢!

1 个答案:

答案 0 :(得分:1)

这实现了微分方程

angle''(t)+k*sin(angle(t))=0

由于他们使用欧拉前向方法进行积分,系统实际上会增加其能量,测量为

E = 0.5*angle'(t)^2+k*(1-cos(angle)).

要在等式中添加阻尼,可以通过设置

来模拟一些空气摩擦
acceleration = -k*sin(angle)-c*velocity