Projecte ProgessiveMaps

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

(TBD) 2 modes:

Funcionalitats

(TBD)

Aplicacions unitàries

Abans de posar-ho tot conjuntament, totes les funcionalitats es provaran en unes aplicacions unitàries.

App1

Primer havia pensat de fer servir la llibreria cubic-spline que s'explica més avall. Però aquest problema de suavitzar segments ja està resolt a Smoothing lines using Chaikins algorithm:

$ npm instal chaikin-smooth

Llibreries

cubic-spline

NOTA: no cal. suavitzar segments està resolt a [13], que és exactament el que jo vull.

Donats una sèrie de punts, vull augmentar la resolució entre els punts obtenint una línia suavitzada.

$ cd /projectes/ProgressiveMaps

Projecte cubic-spiline:

This is helpful for smoothing line graphs.

$ git clone https://github.com/morganherlocker/cubic-spline.git

Depèn d'un paquet que es diu tape:

$ npm install tape

I ja funciona:

$ npm test
> node test.js

TAP version 13
# spline
ok 1 should be equal
ok 2 should be equal
ok 3 should be equal
ok 4 should be equal
ok 5 should be equal
...

Faig la modificació test2.js per tal d'obtenir un codi mínim que funcioni i que es vegi com es suavitza una corba:

const Spline = require("./");

const xs = [1, 2, 3, 4, 5];
const ys = [9, 3, 6, 2, 4];

// new a Spline object
const spline = new Spline(xs, ys);

//comprovació
console.log(spline.at(1));
console.log(spline.at(2));

// interpolate a line at a higher resolution
for (var i = 0; i < 50; i++) {
  console.log(i/10 + " " + spline.at(i * 0.1));
}
$ node test2.js

9
3
0 14.999999999999998
0.1 14.916053571428568
0.2 14.669142857142853
0.3 14.277375
0.4 13.758857142857144
0.5 13.131696428571427
0.6 12.414
0.7 11.623874999999998
0.8 10.779428571428571
0.9 9.898767857142857
1 9
1.1 8.101232142857143
1.2 7.220571428571427
...

El mòdul tape té a veure amb el testing. No el necessitem si no fem testing.

En teoria, per instal·lar la llibreria és:

$ npm install cubic-spline

però en aquests moments (abril 2020) no està disponible en els repositoris. Tant se val, perquè n'hi ha prou en incloure el fitxer del projecte on es defineix la classe Spline, en aquest cas index.js.


creat per Joan Quintana Compte, abril 2020

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines