Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
Smooth.METHOD_CUBIC = 'cubic'
class CubicInterpolator extends AbstractInterpolator interpolate: (t) -> k = Math.floor t m = [(@getTangent k), (@getTangent k+1)] #get tangents p = [(@getClippedInput k), (@getClippedInput k+1)] #get points #Translate t to interpolate between k and k+1 t -= k t2 = t*t #t^2 t3 = t*t2 #t^3 #Apply cubic hermite spline formula return (2*t3 - 3*t2 + 1)*p[0] + (t3 - 2*t2 + t)*m[0] + (-2*t3 + 3*t2)*p[1] + (t3 - t2)*m[1]