diff --git a/README.md b/README.md index 016ea21..da3232c 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,30 @@ -CoffeeScript/JavaScript implementation of Philip J. Schneider's "Algorithm for Automatically Fitting Digitized Curves" from the book "Graphics Gems". -Converted from Python implementation. - Fit one or more cubic Bezier curves to a polyline. +JavaScript implementation of Philip J. Schneider's "Algorithm for Automatically Fitting Digitized Curves" from the book "Graphics Gems". -This is a CS/JS implementation of Philip J. Schneider's C code. The original C code is available on http://graphicsgems.org/ as well as in https://github.com/erich666/GraphicsGems +Ported from C via Python: +* Original (C): + * https://github.com/erich666/GraphicsGems/blob/master/gems/FitCurves.c +* Python: + * https://github.com/volkerp/fitCurves +* CoffeeScript/JavaScript + math.js/lodash: + * https://github.com/soswow/fit-curves -This implementation uses [mathjs](https://github.com/josdejong/mathjs) +**No dependencies.** -Usage: +Usage +----- ```javascript var fitCurve = require('fitCurve'); var points = [[0, 0], [10, 10], [10, 0], [20, 0]]; -var error = 50; // The smaller the number - the much closer spline should be +var error = 50; //Lower numbers give more accurate curves. var bezierCurves = fitCurve(points, error); // bezierCurves[0] === [[0, 0], [20.27317402, 20.27317402], [-1.24665147, 0], [20, 0]] // where each element is [x, y] and elements are [first-point, control-point-1, control-point-2, second-point] ``` -You can play around with that in this [demo](https://soswow.github.io/fit-curves/demo). +Demo +---- -![demo](https://github.com/soswow/fit-curves/raw/master/demo-screenshot.png "Demo") +http://codepen.io/Sphinxxxx/pen/jALxvQ?editors=1011