# cubic-hermite

> Cubic hermite interpolation

Latest version **1.0.0** (published 2014-05-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install cubic-hermite
pnpm add cubic-hermite
yarn add cubic-hermite
bun add cubic-hermite
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2014-05-06 |
| First published | 2013-04-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 22 |
| Author | Mikola Lysenko |
| Maintainers | mikolalysenko |
| Keywords | spline, position, velocity, interpolation, point, particle, game, physics, numerical, method, math |

## Links

- npm: https://www.npmjs.com/package/cubic-hermite
- Repository: https://github.com/mikolalysenko/cubic-hermite
- Issues: https://github.com/mikolalysenko/cubic-hermite/issues
- npm.io page: https://npm.io/package/cubic-hermite

## Alternatives

- [random-seedable](https://npm.io/package/random-seedable.md) — 27.9K weekly downloads
- [n2words](https://npm.io/package/n2words.md) — 22.2K weekly downloads
- [@stdlib/math-base-special-factorialln](https://npm.io/package/@stdlib/math-base-special-factorialln.md) — 5.7K weekly downloads
- [@stdlib/math-base-special-abs2](https://npm.io/package/@stdlib/math-base-special-abs2.md) — 1.7K weekly downloads
- [commons-math-interpolation](https://npm.io/package/commons-math-interpolation.md) — 1.4K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2014-05-06
- 0.0.0 — 2013-04-05

## README

cubic-hermite
=============
[Cubic hermite spline](http://en.wikipedia.org/wiki/Cubic_Hermite_spline) for interpolating position/velocity pairs.  Simplest quick and dirty way to get a smooth path between points

## Install

    npm install cubic-hermite
    
## Example

```javascript
var hermite = require("cubic-hermite")

//Compute intial position and velocity
var initial_position = [0, 1]
  , initial_velocity = [1, 0]
  , final_positions  = [1, 0]
  , final_velocity   = [0, 1]
  
//Plot curve
for(var t=0.0; t<1.0; t+=0.1) {
  console.log(hermite(initial_position, initial_velocity, final_position, final_velocity, t))
}
```

## API

### `require("cubic-hermite")(p0, v0, p1, v1, t[, result])`
Computes an interpolated position between initial and final configurations at time t.  Arguments can be either scalars or arrays

* `p0` is the initial position
* `v0` is the initial velocity
* `p1` is the final position
* `v1` is the final velocity
* `t` is the point on the curve to interpolate to in the range [0,1]
* `result` is a vector that gets the result of the interpolation (if not specified, a new vector is created)

**Returns** The interpolated point on the curve

### `require("cubic-hermite").derivative(p0, v0, p1, v1, t[, result])`
Returns the velocity along the curve at a point t

* `p0` is the initial position
* `v0` initial velocity
* `p1` final position
* `v1` final velocity
* `t` point on the curve to interpolate to, in the range [0,1]
* `result` stores the result of the interpolation.  (if not specified, is reallocated)

**Returns** The interpolated velocity at the time `t`

## Credits
(c) 2013 Mikola Lysenko. MIT License

---
_Source: https://npm.io/package/cubic-hermite · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
