{ Cubic Basis Functions } bezier(p1, p2, p3, p4, t) = p1 * (1+t*(-3+t*(3-t))) + p2 * 3*t*(1+t*(-2+t)) + p3 * 3*t*t*(1-t) + p4 * t*t*t ; hermite(p0, p1, r0, r1, t) = p0 * ((2*t-3)*t*t+1) + p1 * (-2*t+3)*t*t + r0 * (((t-2)*t+1)*t) + r1 * ((t-1)*t*t); bspline(pp, p0, p1, pn, t) = pp * (1/6+t*(-1/2+t*(1/2-1/6*t))) + p0 * (2/3+t*t*(-1+1/2*t)) + p1 * (1/6+t*(1/2+t*(1/2-1/2*t))) + pn * (1/6*t*t*t) ;