Dart DocumentationCurveUtils

CurveUtils library

Functions

dynamic interpolate(p0, p1, p2, p3, t) #

Catmull-Rom

interpolate( p0, p1, p2, p3, t ) {
 var v0 = ( p2 - p0 ) * 0.5;
 var v1 = ( p3 - p1 ) * 0.5;
 var t2 = t * t;
 var t3 = t * t2;
 return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;
}

dynamic tangentSpline(t, p0, p1, p2, p3) #

tangentSpline( t, p0, p1, p2, p3 ) {

 // To check if my formulas are correct

 var h00 = 6 * t * t - 6 * t;  // derived from 2t^3 − 3t^2 + 1
 var h10 = 3 * t * t - 4 * t + 1; // t^3 − 2t^2 + t
 var h01 = -6 * t * t + 6 * t;   // − 2t3 + 3t2
 var h11 = 3 * t * t - 2 * t;  // t3 − t2

 return h00 + h10 + h01 + h11;

}

dynamic tangentCubicBezier(t, p0, p1, p2, p3) #

tangentCubicBezier(t, p0, p1, p2, p3 ) {
 return -3 * p0 * (1 - t) * (1 - t)  +
   3 * p1 * (1 - t) * (1-t) - 6 *t *p1 * (1-t) +
   6 * t *  p2 * (1-t) - 3 * t * t * p2 +
   3 * t * t * p3;
}

dynamic tangentQuadraticBezier(t, p0, p1, p2) #

tangentQuadraticBezier( t, p0, p1, p2 ) => 2 * ( 1 - t ) * ( p1 - p0 ) + 2 * t * ( p2 - p1 );