audiovisualcoding

これをやるのに必要なのはこれだけ、が欲しかったプログラミング初心者による覚え書き

【JavaScript】指定の範囲の値を、別の範囲に置き換えたい(再マッピングしたい)とき

【実践したいこと】
何を:ある範囲(たとえば0~7)の値を、別の範囲(たとえば-1~1)の値に置き換えたい。
Pure DataのスライダーやMax/MSPのscaleオブジェクトのような操作が欲しかった。

【ソース】

▾main.js

function mapping (value, minIn, maxIn, minOut, maxOut) {
    return (value - minIn) * (maxOut - minOut) / (maxIn - minIn) + minOut;
}

// 0~7を-1~1の範囲に合わせたときのそれぞれの値を出力
for (let i = 0; i < 8; i++) {
    let val = mapping(i, 0, 7, -1, 1);
    console.log(val);
}

// コンソールログ:
// -1
// -0.7142857142857143
// -0.4285714285714286
// -0.1428571428571429
// 0.1428571428571428
// 0.4285714285714286
// 0.7142857142857142
// 1

参考文献

gist.github.com

siomin.vercel.app