2011-09-12 54 views

回答

0

阻尼諧振子的解決方案很簡單:

startAmplitude*sin(omega*t+startPhase)*exp(-t*dampningConstant) 

我會用這個來形容關節的角度。從手臂的角度和長度可以計算(x,y)對。如果你在一個系列中有幾個部分,你可以簡單地添加不同步驟的x和y值。

這並沒有描述正確的關節耦合系統的物理,但可能足以滿足您的需要。

0

爲了模擬需要指定阻尼彈簧:

  • 阻尼力(0 =無阻尼,1 =完全阻尼)
  • 彈簧常數(0 =沒有彈簧,增加值結果更強的彈簧)

每一幀,你要保持物體的速度記錄,並根據:

  1. 潮溼(慢)的對象
  2. 的速度通過添加力拉回來修改速度休息
  3. 調整對象的位置是根據它的速度

在僞代碼中,這是:

velocity = velocity * (1-dampingFactor) + deviationFromRest * springConstant 
position = position + velocity 

你可以用這個在我的網站交互播放:
http://phrogz.net/damped-spring-oscillations-in-javascript

enter image description here