2014-04-23 11 views
0

我正在嘗試使用javascript和canvas進行運動插值。我擁有所有的X,Y座標,但我不知道如何使場沿着弧線從位置A移動到位置B. enter image description here使用javascript的canvas動畫插值運動

+1

你嘗試過什麼?你有一個JS小提琴與設置和/或例子?如果這是我所需要的,則可以使用 – Robodude

+0

。不要把代碼給我。只是我可以用來計算弧的任何幫助。 – J261

回答

3

你的弧似乎是一條二次曲線。

您可以沿着這樣的二次曲線計算的插補點:

您需要提供您的起點和終點以及定義行的「彎曲度」的控制點。

function getQuadraticBezierXYatT(startPt,controlPt,endPt,T) { 
    var x = Math.pow(1-T,2) * startPt.x + 2 * (1-T) * T * controlPt.x + Math.pow(T,2) * endPt.x; 
    var y = Math.pow(1-T,2) * startPt.y + 2 * (1-T) * T * controlPt.y + Math.pow(T,2) * endPt.y; 
    return({x:x,y:y}); 
} 

這裏有一個演示:http://jsfiddle.net/m1erickson/56sZj/

+0

比以前更有效率。謝謝! – J261