javascript滑块加权值

前端之家收集整理的这篇文章主要介绍了javascript滑块加权值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个JavaScript滑块,根据其位置输出0到1之间的值.我想将该值转换为介于100和1000之间的另一个比例的值,但是基于100到1000之间的一组数据点的分布.

这里的用例是,当有一组非常接近的数字时,我希望滑块对变化不太敏感.例如…让我们说比例尺中的值是:

100,200,300,500,1000

值100-500可能会占据滑块的前80%,因为它们分布较近,因此可以更容易地在它们之间进行选择.

显然有计算这个的数学函数,可能涉及标准偏差和系数.有人知道这是什么吗?

最佳答案
在大规模的值之间使用线性插值,类似于

var bigValues = [100,1000];
var input; /* will vary in the range [0.0..1.0] */
var idx; /* index of nearest entry in bigValues below input */
var frac; /* fraction [0.0..1.0) in interval in bigValues */
var output;
/* try some test values for input */
for (var i = 0; i<=20; i++) {
    input = i * 0.05;
    idx = Math.floor(input * (bigValues.length - 1));

    frac = (input - (idx) / (bigValues.length - 1)) * (bigValues.length - 1);
    if (frac == 0) { /* no need to calculate */
        output = bigValues[idx];
    }
    else {
        output = bigValues[idx] + (bigValues[idx+1] - bigValues[idx]) * frac;
    };
    document.write(input + ',' + output + '

猜你在找的JavaScript相关文章