@yr/monotone-cubic-spline
Advanced tools
Comparing version 1.0.0 to 1.0.1
58
index.js
'use strict'; | ||
/** | ||
* Convert a series of points to a monotone cubic spline | ||
* Algorithm based on https://github.com/mbostock/d3 | ||
* https://github.com/yr/monotone-cubic-spline | ||
* @copyright Yr | ||
* @license MIT | ||
*/ | ||
var ε = 1e-6; | ||
@@ -15,7 +23,7 @@ | ||
var p = _points[1], | ||
p0 = _points[0], | ||
pts = [], | ||
t = tgts[1], | ||
t0 = tgts[0]; | ||
var p = _points[1]; | ||
var p0 = _points[0]; | ||
var pts = []; | ||
var t = tgts[1]; | ||
var t0 = tgts[0]; | ||
@@ -27,4 +35,4 @@ // Add starting 'M' and 'C' points | ||
for (var i = 2, n = tgts.length; i < n; i++) { | ||
var _p = _points[i], | ||
_t = tgts[i]; | ||
var _p = _points[i]; | ||
var _t = tgts[i]; | ||
@@ -37,2 +45,3 @@ pts.push([_p[0] - _t[0], _p[1] - _t[1], _p[0], _p[1]]); | ||
/** | ||
@@ -62,2 +71,3 @@ * Slice out a segment of 'points' | ||
/** | ||
@@ -72,4 +82,4 @@ * Convert 'points' to svg path | ||
for (var i = 0; i < points.length; i++) { | ||
var point = points[i], | ||
n = point.length; | ||
var point = points[i]; | ||
var n = point.length; | ||
@@ -98,10 +108,10 @@ if (!i) { | ||
function tangents(points) { | ||
var m = finiteDifferences(points), | ||
n = points.length - 1; | ||
var m = finiteDifferences(points); | ||
var n = points.length - 1; | ||
var tangents = [], | ||
a = undefined, | ||
b = undefined, | ||
d = undefined, | ||
s = undefined; | ||
var tangents = []; | ||
var a = void 0, | ||
b = void 0, | ||
d = void 0, | ||
s = void 0; | ||
@@ -125,5 +135,5 @@ for (var i = 0; i < n; i++) { | ||
for (var i = 0; i <= n; i++) { | ||
s = (points[Math.min(n, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i])); | ||
tangents.push([s || 0, m[i] * s || 0]); | ||
for (var _i = 0; _i <= n; _i++) { | ||
s = (points[Math.min(n, _i + 1)][0] - points[Math.max(0, _i - 1)][0]) / (6 * (1 + m[_i] * m[_i])); | ||
tangents.push([s || 0, m[_i] * s || 0]); | ||
} | ||
@@ -150,7 +160,7 @@ | ||
function finiteDifferences(points) { | ||
var m = [], | ||
p0 = points[0], | ||
p1 = points[1], | ||
d = m[0] = slope(p0, p1), | ||
i = 1; | ||
var m = []; | ||
var p0 = points[0]; | ||
var p1 = points[1]; | ||
var d = m[0] = slope(p0, p1); | ||
var i = 1; | ||
@@ -157,0 +167,0 @@ for (var n = points.length - 1; i < n; i++) { |
{ | ||
"name": "@yr/monotone-cubic-spline", | ||
"description": "Convert a series of points to a monotone cubic spline", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"author": "Alexander Pope <alexander.pope@nrk.no>", | ||
@@ -9,7 +9,7 @@ "dependencies": { | ||
"devDependencies": { | ||
"buddy": "3.1.x", | ||
"buddy": "5.0.x", | ||
"buddy-plugin-babel": "6.7.x", | ||
"expect.js": "*", | ||
"mocha": "*", | ||
"mocha-phantomjs": "*", | ||
"transfigure-babel": "6.1.x" | ||
"mocha-phantomjs": "*" | ||
}, | ||
@@ -28,11 +28,9 @@ "main": "src/index.js", | ||
{ | ||
"input": "src/index.js", | ||
"output": "test/lib.js", | ||
"boilerplate": true, | ||
"bootstrap": true | ||
}, | ||
{ | ||
"input": "src", | ||
"output": ".", | ||
"modular": false | ||
}, | ||
{ | ||
"input": "src/index.js", | ||
"output": "test/lib.js" | ||
} | ||
@@ -39,0 +37,0 @@ ] |
@@ -0,1 +1,4 @@ | ||
[![NPM Version](https://img.shields.io/npm/v/@yr/monotone-cubic-spline.svg?style=flat)](https://npmjs.org/package/@yr/monotone-cubic-spline) | ||
[![Build Status](https://img.shields.io/travis/YR/monotone-cubic-spline.svg?style=flat)](https://travis-ci.org/YR/monotone-cubic-spline?branch=master) | ||
Convert a series of points to a monotone cubic spline (based on D3.js implementation) | ||
@@ -6,5 +9,5 @@ | ||
```js | ||
const spline = require('@yr/monotone-cubic-spline') | ||
, points = spline.points([[0,0], [1,1], [2,1], [3,0], [4,0]] | ||
, svgPath = spline.svgPath(points); | ||
const spline = require('@yr/monotone-cubic-spline'); | ||
const points = spline.points([[0,0], [1,1], [2,1], [3,0], [4,0]]; | ||
const svgPath = spline.svgPath(points); | ||
@@ -11,0 +14,0 @@ console.log(svgPath); |
'use strict'; | ||
/** | ||
* Convert a series of points to a monotone cubic spline | ||
* Algorithm based on https://github.com/mbostock/d3 | ||
* https://github.com/yr/monotone-cubic-spline | ||
* @copyright Yr | ||
* @license MIT | ||
*/ | ||
const ε = 1e-6; | ||
@@ -14,7 +22,7 @@ | ||
let p = points[1] | ||
, p0 = points[0] | ||
, pts = [] | ||
, t = tgts[1] | ||
, t0 = tgts[0]; | ||
let p = points[1]; | ||
let p0 = points[0]; | ||
let pts = []; | ||
let t = tgts[1]; | ||
let t0 = tgts[0]; | ||
@@ -26,4 +34,4 @@ // Add starting 'M' and 'C' points | ||
for (let i = 2, n = tgts.length; i < n; i++) { | ||
const p = points[i] | ||
, t = tgts[i]; | ||
const p = points[i]; | ||
const t = tgts[i]; | ||
@@ -69,4 +77,4 @@ pts.push([p[0] - t[0], p[1] - t[1], p[0], p[1]]); | ||
for (let i = 0; i < points.length; i++) { | ||
const point = points[i] | ||
, n = point.length; | ||
const point = points[i]; | ||
const n = point.length; | ||
@@ -95,7 +103,7 @@ if (!i) { | ||
function tangents (points) { | ||
const m = finiteDifferences(points) | ||
, n = points.length - 1; | ||
const m = finiteDifferences(points); | ||
const n = points.length - 1; | ||
let tangents = [] | ||
, a, b, d, s; | ||
let tangents = []; | ||
let a, b, d, s; | ||
@@ -143,7 +151,7 @@ for (let i = 0; i < n; i++) { | ||
function finiteDifferences (points) { | ||
let m = [] | ||
, p0 = points[0] | ||
, p1 = points[1] | ||
, d = m[0] = slope(p0, p1) | ||
, i = 1; | ||
let m = []; | ||
let p0 = points[0]; | ||
let p1 = points[1]; | ||
let d = m[0] = slope(p0, p1); | ||
let i = 1; | ||
@@ -150,0 +158,0 @@ for (let n = points.length - 1; i < n; i++) { |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
9840
7
271
23
1