Source: http://cs.wellesley.edu/~cs215/Lectures/L03-AnimationTheory/CS215-animation.pdf