2014-03-06 40 views
0

我正在使用一個函數爲我提供我在滑塊小部件中使用的對數刻度。該功能來自this blog。我需要幫助扭轉這一功能:反轉Exp功能。對數刻度

var v = (Math.exp(2.77258872 * x) - 1)/15; 
v *= MAX_WIDTH; 

從博客中評論者發表在這個克(F(X))的功能,但它似乎並沒有產生正確的結果:

var unscaledValue = 2.77258872 * (Math.log(v * 15 /MAX_WIDTH + 1)) 

回答

2
v = (Math.exp(2.77258872 * x) - 1)/15 * MAX_WIDTH 
v * 15/MAX_WIDTH = Math.exp(2.77258872 * x) - 1 
v * 15/MAX_WIDTH + 1 = Math.exp(2.77258872 * x) 
Math.log(v * 15/MAX_WIDTH + 1) = 2.77258872 * x 
x = Math.log(v * 15/MAX_WIDTH + 1)/2.77258872 
+0

9年級的數學剛回到英寸謝謝你提供的證據。你的答案是正確的。 ErstwhileIII在最後的陳述中有一個括號問題,但問題是一樣的。謝謝你們倆 – Elijah

+0

代數 - 很高興知道。 – duffymo

0

就回去做代數:

v = MAX_WIDTH* ((Math.exp(2.77258872 * x) - 1) /15) 
v/MAX_WIDTH = (Math.exp(2.77258872 * x) - 1) /15) 
15*(v/MAX_WIDTH) = Math.exp(2.77258872 * x) - 1 
15*(v/MAX_WIDTH) +1 = Math.exp(2.77258872 *x) 

log(15*(v/MAX_WIDTH)+1) = 2.77258872*x 
(log(15*v/MAX_WIDTH)+1)/2.77258872) = x 

看起來像您事半功倍,當你應該分成。