Socket
Socket
Sign inDemoInstall

@yr/monotone-cubic-spline

Package Overview
Dependencies
0
Maintainers
2
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0 to 1.0.1

.travis.yml

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++) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc