$ npm install --save cat-rom-spline
var catRomSpline = require('cat-rom-spline');
// Points are arrays in the form of [x, y]
var p0 = [0, 0];
var p1 = [5, 5];
var p2 = [5, 10];
var p3 = [15, 20];
// At least 4 points are needed to interpolate
var points = [p0, p1, p2, p3];
// There are optional configurations that you can make but they aren't required
// If 'samples' is not passed in the interpolation will sample a sensible amount
// of points based on how far away control points are
var options = {
samples: 50,
knot: 0.5 // Default is 0.5, Ranges from 0 - 1, 1 being stiffer curves.
};
var interpolatedPoints = catRomSpline(points, options);
MIT © Nick Schaubeck