What is the difference between natural cubic spline, Hermite spline, Bézier spline and B-spline? I am reading a book about computer graphics. It is confusing about the various splines and their algorithms. 
What is the difference between natural cubic spline, Hermite spline, Bézier spline and B-spline?
 A: Roughly speaking ...
A spline is a curve that's formed from a collection of simple segments strung end-to-end so that their junctions are fairly smooth. There are exotic splines that use trigonometric and hyperbolic functions, but most splines consist of polynomial segments, so those are the only ones considered in the discussion below.
If there is only one (polynomial) segment, the spline is often called a Bézier curve.
If each segment is expressed in Bézier form (using Bernstein basis functions), then you might say that the spline is a "Bézier spline", though this term is not standard, AFAIK.
If each polynomial segment has degree 3, the spline is called a cubic spline.
If each segment is described by its ending positions and derivatives, it is said to be in "Hermite" form.
The b-spline approach gives a convenient way of ensuring continuity between segments. In fact, you can show that every spline can be represented in b-spline form. So, in that sense, every spline is a b-spline.
For more than you would ever want to know about the subject, you can search for "spline" or "b-spline" in this bibliography.
