root 3bf41bf355 update il y a 1 an
..
demo 3bf41bf355 update il y a 1 an
lib 3bf41bf355 update il y a 1 an
script 3bf41bf355 update il y a 1 an
src 3bf41bf355 update il y a 1 an
test 3bf41bf355 update il y a 1 an
.babelrc 3bf41bf355 update il y a 1 an
.bowerrc 3bf41bf355 update il y a 1 an
LICENSE 3bf41bf355 update il y a 1 an
README.md 3bf41bf355 update il y a 1 an
bower.json 3bf41bf355 update il y a 1 an
demo-screenshot.png 3bf41bf355 update il y a 1 an
fit-curve.d.ts 3bf41bf355 update il y a 1 an
package.json 3bf41bf355 update il y a 1 an

README.md

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.

demo

Changelog

0.2.0

  • Expose fitCubic, createTangent & add TypeScript declaration

0.1.7

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