Javascript 如何从增值中计算线性(非正弦)输出

Javascript 如何从增值中计算线性(非正弦)输出,javascript,game-physics,Javascript,Game Physics,我的值从1增加到10000。我可以将其放入一个sin函数中,以获得类似sin输出的值 现在我想要一个线性输出,当我给这个值作为输入时,它给我这样的输出:实际上,这些值必须在0..1范围内 0.1.2.3.4.5.6.7.8.9.8.7.6.5.4.3.2.10 我怎么能用这种快速的数学方法呢 长的 实际上我想要一个0的周期,然后突然变为1,然后再平静下来变为0。我想如果我得到上面的版本,我可以把它放在一个缓和函数中,得到这个结果: 0.0.1.2.4.8.9 1.9.8.4.2.1执行此操作的非

我的值从1增加到10000。我可以将其放入一个
sin
函数中,以获得类似sin输出的值

现在我想要一个线性输出,当我给这个值作为输入时,它给我这样的输出:实际上,这些值必须在
0..1
范围内

0.1.2.3.4.5.6.7.8.9.8.7.6.5.4.3.2.10

我怎么能用这种快速的数学方法呢

长的 实际上我想要一个0的周期,然后突然变为1,然后再平静下来变为0。我想如果我得到上面的版本,我可以把它放在一个缓和函数中,得到这个结果:


0.0.1.2.4.8.9 1.9.8.4.2.1

执行此操作的非执行缓慢方式是:

const linear = (() => {
  const res = [];
  for (let i = 0; i < 100; i++) {
    res.push(i / 100);
  }
  for (let i = 100; i > 0; i--) {
    res.push(i / 100);
  }


  return t => res[Math.round(t) % res.length];
})();

const easing = t => {
  return .04 * t / (--t) * Math.sin(25 * t);
};
constlinear=(()=>{
常数res=[];
for(设i=0;i<100;i++){
恢复推力(i/100);
}
对于(设i=100;i>0;i--){
恢复推力(i/100);
}
返回t=>res[Math.round(t)%res.length];
})();
常数=t=>{
返回.04*t/(-t)*数学sin(25*t);
};

使用它时,要像缓和(线性(t))

看起来就像一个三角波,发射两个for循环怎么样?一个是向上的,第二个是向下的?这应该是一个问题:它准确地显示了你在寻找什么,而当前的问题是矛盾的和模糊的。顺便说一下,我很确定,使这个“不执行”和“缓慢”的是
放松
功能,而不是
线性
功能。所以这个问题一开始可能是错误的。我正在寻找一个最佳实践,我的问题@ruakh应该有一个名字和一个已知的解决方案。我不知道你为什么用
@ruakh.
;就我所知,你的评论和我的两个都没有关系?