Ich versuche, eine Interpolationsfunktion für eine Animationsbibliothek zu erstellen, um einen Tweening-Effekt zwischen Frames zu erzielen.
Ich möchte, dass dies mit Bezier-Kurven funktioniert. Ich habe eine jsFiddle ( hier ) meiner bisherigen Fortschritte erstellt.
Ich versuche, mit dieser Bezier-Definition ein lineares Tween zu erstellen:
{
p0: new Vector(0,0), //Start point
p1: new Vector(0,0), //Control point 1
p2: new Vector(1,1), //Control point 2
p3: new Vector(1,1) //End point
}
Ich habe die Interpolationsfunktion aus diesem Tutorial implementiert .
var u = 1 - t;
var tt = t*t;
var uu = u*u;
var uuu = uu * u;
var ttt = tt * t;
var p = p0.multiply(uuu);
p = p.add(p1.multiply(3 * uu * t));
p = p.add(p2.multiply(3 * u * tt));
p = p.add(p3.multiply(ttt));
Das Problem, das ich habe, ist, dass die Animation beim Ausführen der Funktion nicht linear erscheint, sondern eher wie "Easy-In-Out".
Idealerweise möchte ich, dass die lineare Animation genauso funktioniert wie dieser CSS-Übergang .
Kann jemand sehen, warum es nicht linear animiert?