Tuesday, August 25, 2009

[qmdbbhbd] Bicircular spline

Consider at least 4 ordered points. Points 1, 2, and 3 determine a circle. Points 2, 3, and 4 determine another circle (and so on, taking 3 consecutive points at a time). There are now two different arcs between points 2 and 3, from the first and second circles. Construct a curve which is the average of the two arcs (midpoint of uniform arc-parametrization). This curve is probably an ellipse. In this way, we can construct a spline going through all the control points.

This spline has good behavior when tracing circular curved segments, and also with straight segments (taking care to avoid floating point overflow with circles of nearly infinite radius). It is continuous but not differentiable at the control points.

I had good results with this spline in practice when I implemented it 14 years ago for a T-shirt design.

No comments :