我正在使用 Web Audio API 和画布创建视觉 EQ。我正在使用以下函数在 HTML5 Canvas 上的对数图中绘制频率:
function frequencyToPixel(freq){
var min = Math.log(graph.min)/Math.log(10)
, max = Math.log(graph.max)/Math.log(10)
, range = max-min
, pixel = (Math.log(freq)/Math.log(10) - min) / range * canvas.width;
return pixel;
}
我还想反转这个等式以获得一个返回特定像素相关频率的函数。目前我正在使用以下功能,但它没有产生预期的结果。例如,如果我在上面的函数中输入 1000,它会返回 434.93。因此,我应该能够将 434.93 放入以下等式以返回 1000;
function pixelToFrequency(pixel){
var min = Math.log(graph.min)/Math.log(10)
, max = Math.log(graph.max)/Math.log(10)
, range = max-min
, x = (pixel * canvas.width * range) + min
, frequency = Math.pow(10, x);
return frequency;
}
很可能我以错误的方式重新排列了方程式,因此非常感谢任何帮助。