fit-curve
v0.2.0
Published
JavaScript implementation of Philip J. Schneider's "Algorithm for Automatically Fitting Digitized Curves" from the book "Graphics Gems"
Downloads
11,282
Readme
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
Install
npm install --save fit-curve
Usage
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.
Changelog
0.2.0
- Expose fitCubic, createTangent & add TypeScript declaration
0.1.7
- Bug fix #24.
0.1.6
- Bug fix #13. Use compiled (ES2015) version as main entry point.
Development
npm install
- builds transpiled and minified versions into /lib
npm test
- runs tests