我需要生成0到1之间的数字(用于不透明度),准确反映这个数字的数字:
-249.76684980273333 和 249.76684980273333
例如,-249.76684980273333为0.00,而249.76684980273333为1.00答案 0 :(得分:10)
只做
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
之类的行的形式求解,从中您可以轻松编写算法。
希望这有帮助!
答案 1 :(得分:6)
function scale(min, max, value) {
return value/(max-min) + min
}
min =您的范围的最小值,在您的示例中,-249.76684980273333
max =范围的最大值,在您的示例中,249.76684980273333
value =您正在测试的值
答案 2 :(得分:1)
你想要
y = (x+249.76684980273333)/(2*249.76684980273333);