2012-03-21 20 views

回答

10

只是做

x/(2.0*M) + 0.5 

其中M = 249.76684980273333


要解決這類問題,您需要找到描述特定線性方程的公式。該公式會將您的'大'數字(輸入x)映射到0-1之間的數字(輸出y)。

您可以用公式爲一條直線從兩點:

enter image description here

在你的情況,因爲你說「-249.76684980273333是0.00和249.76684980273333是1.00」,那麼它應該明確的是躺在你有興趣在該行的兩個不同點是:

(x1, y1) = -249.76684980273333, 0.00 
(x2, y2) = 249.76684980273333, 1.00 

替換這些代入公式,並解決它像一個y = m*x + b線的形式,從這個你可以隨便寫你的 算法。

希望這會有所幫助!

+0

您還需要對* x *的值進行限制,以確保結果處於正確的範圍內,並且不會超出範圍。像'(x> M)? 1:(x <-M)? 0:x /(2.0 * M)+0.5;'。 – RobG 2012-03-21 02:53:50

1

你想

y = (x+249.76684980273333)/(2*249.76684980273333); 
6
function scale(min, max, value) { 
    return value/(max-min) + min 
} 

分鐘=最小的範圍內,在你的例子中,-249.76684980273333
最大=最大的範圍內的,在你的榜樣,249.76684980273333
數值=您正在測試的值

相關問題