root 3bf41bf355 update | hai 1 ano | |
---|---|---|
.. | ||
demo | hai 1 ano | |
lib | hai 1 ano | |
script | hai 1 ano | |
src | hai 1 ano | |
test | hai 1 ano | |
.babelrc | hai 1 ano | |
.bowerrc | hai 1 ano | |
LICENSE | hai 1 ano | |
README.md | hai 1 ano | |
bower.json | hai 1 ano | |
demo-screenshot.png | hai 1 ano | |
fit-curve.d.ts | hai 1 ano | |
package.json | hai 1 ano |
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. Works with 2D and 3D curves (and should work for higher dimensions too).
This is a 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
npm install --save fit-curve
var fitCurve = require('fit-curve');
var points = [[0, 0], [10, 10], [10, 0], [20, 0]];
var error = 50; // The smaller the number - the much closer spline should be
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.
npm install
- builds transpiled and minified versions into /lib
npm test
- runs tests