I've taken to using an animation solution loosely based on the answer to this question:
I want to do animation of an object along a particular path
As you can see @markE provided a neat answer which contains a few clever functions, particularly:
getLineXYatPercent(), getQuadraticBezierXYatPercent(), getCubicBezierXYatPercent()
These functions give the coordinates of a percentage through their various elements.
How would I create a similar function based on Canvas'