10.1.5 Fitting the bitmap curve

The steps in the previous sections are preliminary to the main fitting
process. But once we have the final coordinates for each (bitmap)
curve, we can proceed to fit it with some kind of continuous
(mathematical) function: Limn uses both straight lines (polynomials of
degree 1) and Bezier splines (degree 3).

To begin with, to use a spline the curve must have at least four points.
If it has fewer, we simply use the line going through its first and last
points. (There is no point in doing a fancy "best fit" for this case,
since the original curve is so short.)

Otherwise, if the curve has four or more points, we try to fit it with
a (piece of a) Bezier cubic spline. This spline is represented as a
starting point, an ending point, and two "control points". Limn uses the
endpoints of the curve as the endpoints of the spline, and adjusts the
control points to try to match the curve.

A complete description of the geometric and mathematical properties of
Bezier cubics is beyond the scope of this document. See a computer
graphics textbook for the details.

We will use the terms "splines", "cubics", "Bezier splines",
"cubic splines", and so on interchangeably, as is common practice.
(Although Bezier splines are not the only kind of cubic splines, they
are the only kind we use.)

The sections below describe the spline-fitting process in more detail.