天天看點

Flash/Flex學習筆記(39):彈性運動

動畫中的彈性運動 從視覺效果上接近 實體經典力學中的單擺運動或彈簧(胡克定律F=Kx)振動

先看下面的模拟示範:

規律:

小球先從出發點(初始為最左側)向目标點(中心點)加速狂奔,奔的過程中速度越來越大,但加速度越來越小,等經過目标點時,發現速度太大刹不住車(此時速度達到最大值,但加速度減為0),奔過頭了!于是加速度發生逆轉,從0開始變為負值,進而導緻速度越來越小,等速度減到0時,也奔到了最右側(此時負加速度也達到最大值),然後在負加速度的影響下,開始掉頭又狂奔....這樣不斷下去,直接摩擦力讓它筋疲力盡,最終癱倒在目标點 :)

公式:胡克定律F=Kx,而合外力F根據牛二定律 F=ma,這二者結合起來換算一下,也就是 ma = kx,即a = (k/m)x .用代碼展現出來,即加速度與位移成(正比)線性關系。 

上面示範是一維的彈性運動,當然也可以同時在x軸和y軸上進行

代碼:

接下來:用代碼模仿一根猴皮筋兒

上面的例子隻有一個球,如果考慮更多的小球,第一球以滑鼠所在位置為目标做彈性運動,而第二個以第一個球為目标做彈性運動,第三球又跟着第二個... 這會是什麼效果呢?

ok,我們得到了一個"彈簧鍊",當然這裡面還考慮了重力的因素,通過上面的幾個例子可以總結一下:第一個示例中一維彈性運動可以看作為x方向的加速度随位移的影響,而第二個示例可以看作是x,y二個方向加速度随位移影響的疊加,而第三個示例,則可以看作是任何方向這種影響再疊加重力的綜合效果。總之:任何方向的彈性運動,都可以認為是該方向的加速度(或力)随位移的影響,而且這種影響可以在多個方向上疊加。下面這個是多點控制彈性運動的示例: