天天看點

Canvas學習筆記——緩動

當你駕車在高速公路上行駛時,速度是很快的,而快到收費站時,則開始減速直到停下。将這個例子轉換成實體模型就是當物體向終點運動時,開始速度會很快,而在快要到達終點時,速度會逐漸放緩直至0,整個運動過程就是緩動。距離越遠,速度就越大,距離越近,速度就越慢,也就是距離和速度是成正比關系的。

Canvas學習筆記——緩動
如果t為1,則
Canvas學習筆記——緩動
也就是速度等于距離乘以一個0到1的小數。

v = (target - currentPosition) * k;     //  k(0,1]      

然而這樣物體是永遠無法到達目标點的,因為存在很多小數,是以不能達到target === x。為了解決這個問題,需要加上一段限制避免備援的運算:

if(Math.abs(targetX - ball.x) < 0.1 && Math.abs(targetY - ball.y) < 0.1) {
        ball.x = targetX;
        ball.y = targetY;
        window.cancelRequestAnimationFrame(requestId);
}