As promised, I did work on the Degrafa quadratic spline this weekend. I decided to pass on having an interpolative quad. spline (i.e. one that exactly passes through all data points). If there is one quadratic curve per segement (between each set of two data points) with tangent-matching at the joins, then one of the problems with a quadratic curve is handling inflections in between knots. I had temporarily alleviated this issue by inserting artificial data points, but did not like the general look of the curve.
At the end of the day, this is what the cubic Bezier spline is designed to accomplish. The purpose of the quadratic spline is fast drawing of ‘approximate’ shapes. The extra computation and complexity was simply going against the original purpose of this spline and was pushing the quad. spline towards functionality that already existed in Degrafa.
While I may revisit this issue at some future point, I hope to release the quad. spline this week or next after a few more rounds of testing. The spline will interpolate first and last data points. Interior points influence the shape of the spline, but the spline does not interpolate those points. It should draw pretty fast and will be further performance-optimized in the future.