fit-curve
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

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

  • 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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.2.0
    4,434
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.2.0
    4,434
  • 0.1.7
    86
  • 0.1.6
    1,227
  • 0.1.5
    0
  • 0.1.4
    0
  • 0.1.2
    0

Package Sidebar

Install

npm i fit-curve

Weekly Downloads

2,878

Version

0.2.0

License

MIT

Unpacked Size

207 kB

Total Files

15

Last publish

Collaborators

  • soswow