De vez em quando, especialmente se eu fizer alguns jogos de prova de conceito ou qualquer coisa da natureza em tempo real, preciso gerar rapidamente valores entre valores desejados conhecidos.
Exatamente o que uma função faz, certo?
Bem, algumas coisas não são facilmente expressas como uma função. Você pode saber onde deseja algum item em um conjunto discreto de pontos no tempo e simplesmente deseja que o item chegue lá a partir da posição anterior no tempo.
Entre na extraploation !
“Em matemática, extrapolação é o processo de estimar, além do intervalo de observação original, o valor de uma variável com base em sua relação com outra variável” – http://en.wikipedia.org/wiki/Extrapolation
Para fazer isso com relativa facilidade, escrevi um pequeno módulo JavaScript:
https://github.com/AlexanderBrevig/Extrapolate.js
Você pode configurá-lo assim:
// create an object for training
var extrapolate = new EXTRAPOLATE.LINEAR();
// for this example, ket's keep it simple
// f(x) = 2x
extrapolate.given(0).get(0);
extrapolate.given(1).get(2);
extrapolate.given(2).get(4);
extrapolate.given(4).get(8);
extrapolate.given(5).get(10);
Então você pode pedir valores extrapolados como este:
extrapolate.valueFor(-1); // -2
extrapolate.valueFor(2); // 4
extrapolate.valueFor(10); // 20