我需要生成0和1(用於不透明度)之間的一個數,準確地反映這種規模的數字:取決於正/負輸入,我將如何獲得介於0和1之間的值?
-249.76684980273333 AND 249.76684980273333
例如-249.76684980273333將是0.00,和249.76684980273333將1.00
我需要生成0和1(用於不透明度)之間的一個數,準確地反映這種規模的數字:取決於正/負輸入,我將如何獲得介於0和1之間的值?
-249.76684980273333 AND 249.76684980273333
例如-249.76684980273333將是0.00,和249.76684980273333將1.00
只是做
x/(2.0*M) + 0.5
其中M = 249.76684980273333
要解決這類問題,您需要找到描述特定線性方程的公式。該公式會將您的'大'數字(輸入x
)映射到0-1之間的數字(輸出y
)。
您可以用公式爲一條直線從兩點:
在你的情況,因爲你說「-249.76684980273333是0.00和249.76684980273333是1.00」,那麼它應該明確的是躺在你有興趣在該行的兩個不同點是:
(x1, y1) = -249.76684980273333, 0.00
(x2, y2) = 249.76684980273333, 1.00
替換這些代入公式,並解決它像一個y = m*x + b
線的形式,從這個你可以隨便寫你的 算法。
希望這會有所幫助!
您還需要對* x *的值進行限制,以確保結果處於正確的範圍內,並且不會超出範圍。像'(x> M)? 1:(x <-M)? 0:x /(2.0 * M)+0.5;'。 – RobG 2012-03-21 02:53:50
你想
y = (x+249.76684980273333)/(2*249.76684980273333);
function scale(min, max, value) {
return value/(max-min) + min
}
分鐘=最小的範圍內,在你的例子中,-249.76684980273333
最大=最大的範圍內的,在你的榜樣,249.76684980273333
數值=您正在測試的值
評論已清除。對未來評論者的建議:如果你不能成爲公民,就把它帶到別的地方。 – Shog9 2012-03-21 01:05:28