3.3.1 • Published 1 year ago

curve-interpolator v3.3.1

Weekly downloads
516
License
MIT
Repository
github
Last release
1 year ago

npm.io npm.io

Curve Interpolator

A lib for interpolating values over a cubic Cardinal/Catmull-Rom spline curve of n-dimenesions.

Installation

npm install --save curve-interpolator

Basic usage

Reference the CurveInterpolator class:

// commonjs
const CurveInterpolator = require('curve-interpolator').CurveInterpolator;

// es6
import { CurveInterpolator } from 'curve-interpolator';

Define controlpoints you want the curve to pass through and pass it to the constructor of the CurveInterpolator to create an instance:

const points = [
  [0, 4],
  [1, 2],
  [3, 6.5],
  [4, 8],
  [5.5, 4],
  [7, 3],
  [8, 0],
  ...
];

const interp = new CurveInterpolator(points, { tension: 0.2, alpha: 0.5 });

// get single point
const position = 0.3 // [0 - 1]
const pt = interp.getPointAt(position)

// get points evently distributed along the curve
const segments = 1000;
const pts = interp.getPoints(segments);

// lookup values along x and y axises
const axis = 1;
const yintersects = interp.getIntersects(7, axis);

/*
max number of solutions (0 = all (default), 1 = first, -1 = last)
A negative max value counts solutions from end of curve
*/
const axis = 0;
const max = -1;
const xintersects = interp.getIntersects(3.2, axis, max);

// get bounding box
const bbox = interp.getBoundingBox();

Online example on ObservableHQ:

Docs

Docs are generated using typedoc in ./docs. To create:

npm run docs

Online: https://kjerandp.github.io/curve-interpolator/

License

MIT

3.2.0

1 year ago

3.3.1

1 year ago

3.3.0

1 year ago

3.1.0-beta.5

2 years ago

3.1.0-beta.6

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.1.0-beta.3

2 years ago

3.1.0-beta.4

2 years ago

3.1.0-beta.1

2 years ago

3.1.0-beta.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.0.8

5 years ago

2.0.7

5 years ago

2.0.5

5 years ago

2.0.6

5 years ago

2.0.3

5 years ago

2.0.4

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

2.0.0-alpha.12

5 years ago

2.0.0-alpha.11

5 years ago

2.0.0-alpha.9

5 years ago

2.0.0-alpha.10

5 years ago

2.0.0-alpha.7

5 years ago

2.0.0-alpha.8

5 years ago

2.0.0-alpha.6

5 years ago

2.0.0-alpha.5

5 years ago

2.0.0-alpha.3

5 years ago

2.0.0-alpha.4

5 years ago

2.0.0-alpha.2

5 years ago

2.0.0-alpha.1

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.0

5 years ago

1.0.0-alpha.3

5 years ago

1.0.0-alpha2

5 years ago

1.0.0-alpha.2

5 years ago

1.0.0-alpha

5 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago