我正在做一個關於web音頻API的小實驗,我希望垂直軸影響振盪器的增益值(請參見下面的小提琴) 。我需要將畫布頂部到畫布底部之間的值縮放到值0和1之間,以便Y軸上的鼠標移動事件可聽地影響增益。我認爲這是一個普遍的數學問題,可以應用於任何範圍的數字,但我只是不知道該怎麼做。如何在JavaScript中將任何數字範圍縮放到0和1之間
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;
});
雖然正確,但這更多的是評論而不是答案。也許你可以通過一個或兩個數學實現什麼來擴大一點? – Xotic750
謝謝。現在我覺得自己很笨 – William