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