Cornu Spline Tool

This tool draws a smooth curve that passes through a given set of points.  For example, the Cornu spline on the left in the figure below passes through the endpoints of the line segments shown on the right.

You can use an existing line as the basis for creating a Cornu spline or you can draw a Cornu spline interactively.  You can also interactively edit a Cornu spline.

This tool crunches some numbers (and Ruby is not the best platform for that).  Larger values of the parameters that control the algorithm (i.e. iterations of 100, 200 or more and sides/segment of 50, 100 or more) produce noticeably nicer curves but may take a few seconds to compute.  In practice, you probably want to use smaller values when drawing interactively (i.e. iterations = 50, sides/segment = 20).  You can always go back and edit the algorithm parameters to draw a smoother curve.

** This capability is an adaptation of path.py created by Raph Levien (http://levien.com/spiro/) with insights from Cornu for Nodebox (http://nodebox.net/code/index.php/Cornu).  Thanks to Raph and to the Nodebox team for their expertise, creativity and generosity. **

At the 1:50 mark of this brief (3 min) video, there is a demo of interactive drawing and editing using the Cornu spline tool: