Cubic Hermite spline interpolation
npm install cubic-hermite-splinecubic-hermite-spline
====================
Cubic Hermite spline interpolation of points / tangeants in any dimension with optional derivative computation. The interpolator can also take a knot-like vector as an optional parameter, which may be useful to enforce time at control points when used for position / velocity interpolation.
Install
-------
``bash`
$ npm install cubic-hermite-spline
Example
-------
Basic usage
`javascript
var hermite = require('cubic-hermite-spline');
var points = [
[-1, 0],
[ 0, 0],
[ 1, 0]
];
var tangents = [
[1, 1],
[0, 1],
[1, 1]
];
for(var t=0; t<1; t+=0.01) {
var point = hermite(t, points, tangents);
var tangent = hermite(t, points, tangents, null, true);
}
`

With a knot vector
`javascript
var hermite = require('cubic-hermite-spline');
var points = [
[-1, 0],
[ 0, 0],
[ 1, 0]
];
var tangents = [
[1, 1],
[0, 1],
[1, 1]
];
var knots = [
0, 1.5, 2
];
for(var t=0; t<1; t+=0.01) {
var point = hermite(t, points, tangents);
var tangent = hermite(t, points, tangents, knots, true);
}
`

Usage
-----
Computes the interpolation at t for the provided set of points and tangents, and optional knots.
* t position along the curve: in the [0, 1] range for regular use, and [0, last-knot-value] when using knotspoints
* vectors to interpolatetangents
* tangents at provided pointsknots
* enforced values of t at provided pointsderivative
* if true return the tangeant at t instead of the positionresult` preallocated array in which the result will be stored (avoid GC)
*
Returns the interpolated vector