I suggest you explore curve reconstruction via [local feature size](http://en.wikipedia.org/wiki/Local_feature_size).
The following figure is essentially an "algorithm without words":
<hr />
![DCGFig5.9][1]
<br />
&nbsp;
<sup>(Figure from [Discrete and Computational Geometry](http://press.princeton.edu/titles/9489.html).)</sup>
<hr />


  [1]: https://i.sstatic.net/03GTJ.png