根据正/负输入,我如何获得介于0和1之间的值?

Jus*_*son -8 algorithm math

我需要生成一个0到1之间的数字(用于不透明度),准确反映这个数字的数字:

-249.76684980273333 AND 249.76684980273333

例如,-249.76684980273333将为0.00,而249.76684980273333将为1.00

Pen*_*One 10

做就是了

x / (2.0*M) + 0.5
Run Code Online (Sandbox Code Playgroud)

哪里 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
Run Code Online (Sandbox Code Playgroud)

将这些替换为公式,并以类似的形式解决它y = m*x + b,从中您可以轻松编写您的算法.

希望这可以帮助!


tyj*_*enn 6

function scale(min, max, value) {
    return value/(max-min) + min
}
Run Code Online (Sandbox Code Playgroud)

min =范围的最小值,在您的示例中,-249.76684980273333
max =范围的最大值,在您的示例中,249.76684980273333
value =您要测试的值