Patrikalakis Maekawa and Cho have a relatively simple approach which may be useful. They essentially take the control point polygon for a spline, and try to offset it, then evaluate the deviation between the curves and if the deviation is insufficiently exact, they split the spline and try again.

http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node222.html

![enter image description here][1]

Alternatively, Gabriel Suchowolski's paper, [Quadratic bezier offsetting with selective subdivision](http://microbians.com/math/Gabriel_Suchowolski_Quadratic_bezier_offsetting_with_selective_subdivision.pdf).

  [1]: https://i.sstatic.net/gq4hL.png