Quadratic Bezier, 3-point interpolation
Using a quadratic bezier curve to interpolate three points is a very old algorithm, dating back to the early 1970’s. It’s been around quite some time in Flash, although in a simplified form sometimes called midpoint interpolation. This is because the parameter, or t-value, at which the curve passes through the second point is arbitrary. The formula happens to be compact when t = 0.5. So, that is taken as the ‘interpolation formula’. The midpoint formula has been passed around online and published in some Flash books. The relationship of this formula to the actual parameterization of the curve is discussed in this TechNote.
Choosing a parameter value to interpolate the second point affects the placement of the middle Bezier control point. Since the control points form the set of geometric constraints for the curve, this is an example of a case where parameterization actually affects the shape of the curve.
The default parameterization for the Singularity Bezier2 class is based on chord-length. The t-value at which the quad. Bezier passes through the second point is determined by the fraction of the distance between the first and second points to the total chord length.
This online demo illustrates the difference between midpoint, chord-length, and arbitrary parameterizations.