如何在 JavaScript 中将任何数字范围缩放到 0 到 1 之间的值

Wil*_*iam 4 javascript math

我正在使用网络音频 API 进行这个小实验,我希望垂直轴影响振荡器的增益值(参见下面的小提琴)。我需要将画布顶部到画布底部之间的值缩放到 0 和 1 之间的值,以便 Y 轴上的鼠标移动事件在听觉上影响增益。我认为这是一个一般数学问题,可以应用于任何数字范围,但我只是不知道该怎么做。

http://jsfiddle.net/63Y54/

var audioContext = new webkitAudioContext();



oscillator = undefined ;

$("#myCanvas").mousedown(function() {
    var osc = audioContext.createOscillator(); 
    gainNode = audioContext.createGainNode();
    oscillator = osc;
    oscillator.start(0);

});


$("#myCanvas").mouseup(function() {
    oscillator.stop();
});



$("#myCanvas").mousemove(function(event) {
    console.log(event.pageX);
    console.log(event.pageY);
    oscillator.type = "sawtooth";
    gainNode.gain.value = (event.pageX);
    oscillator.connect(gainNode); 
    gainNode.connect(audioContext.destination); 
    oscillator.frequency.value = event.pageX;


});
Run Code Online (Sandbox Code Playgroud)

Jim*_*ica 5

您将自己的价值除以可能的最大值。

假设您的值为 50,值的范围为 0 到 100,则 50/100 = 0.5。

同样,如果您的值为 0,则 0/100=0。

如果您的值为 100,则 100/100=1。