在javascript中查找两条直线之间的曲线

在javascript中查找两条直线之间的曲线,javascript,counter,easing,Javascript,Counter,Easing,我有一个计票台。然而,我只是在30秒后从服务器上提取这个数字。我希望它在前端看起来相当一致,所以我写了一个小脚本来跟踪选票的增加,并给它一个很好的线性增加,每秒多次 然而,我似乎无法很好地在不同的速率之间转换——我的大脑在线性转换过程中被锁定 示例: 假设我们有100票 预计投票数将在未来30秒内增加60票,或每1秒增加2票(2/1)。我已经可以走那么远了 30秒后,我们以160票的线性增益结束了比赛 现在,预计下一个部分在30秒内只会增加20票,或每3秒增加2票(2/3) 我不希望投票率突然下

我有一个计票台。然而,我只是在30秒后从服务器上提取这个数字。我希望它在前端看起来相当一致,所以我写了一个小脚本来跟踪选票的增加,并给它一个很好的线性增加,每秒多次

然而,我似乎无法很好地在不同的速率之间转换——我的大脑在线性转换过程中被锁定

示例: 假设我们有100票

预计投票数将在未来30秒内增加60票,或每1秒增加2票(2/1)。我已经可以走那么远了

30秒后,我们以160票的线性增益结束了比赛

现在,预计下一个部分在30秒内只会增加20票,或每3秒增加2票(2/3)

我不希望投票率突然下降,我希望投票率平稳过渡,30秒后我将获得正确的(180)总投票数,计数器将减速(或相应地加速),而不仅仅是突然改变线性增益

var t = 0;
function upCount(){
  $("#votecount").text(Math.floor(current + nextInc*(t/60));
  t++;
}
current
是服务器报告的当前投票数,
nextInc
是未来30秒内发生的预测投票数

t
是“时间”,每次从服务器拉ajax时都重置为零。这在500ms的间隔内

也许我完全错了。欢迎疯狂的想法。如果有帮助的话,我可以在这里使用jQuery


谢谢

对您的费率应用指数过滤器怎么样?就是

smoothed_rate = (current_rate + c*smoothed_rate) / (1+c)
这将为您提供一个参数c来调整平滑。c=0-->完全没有平滑。c-->越大,平滑度越高


如果你想平滑利率的变化,那么引入更多的积分。您不需要额外的服务器往返。只要复制你得到的。例如,如果计算30秒的速率x,则假设3个间隔的速率x持续10秒,并对其应用平滑。这几乎不需要额外的努力就能实现更高阶的平滑。

使用!伟大的这在JS中是如何工作的?