Как сделать наростание скорости функции

как сделать постепенное наростание скорости, например финальное число 100.00, а наростание скорости(const oneStepTime) происходит после чисел 20.63, 38,22 и 80, спасибо!

const oneStepTime = 100;

function randomFloat(maxNumber, maxStep, minStep) {
  let acc = 1.00;
  const interval = setInterval(() => {
    let step = 0.01;
    if (maxNumber - acc > step) {
      acc += step;
    } else {
      acc = maxNumber;
      clearInterval(interval);
      setTimeout(() => {
        disp.innerText = "";
        run();
      }, 1000)
    }
    disp.innerText = acc.toFixed(2);
  }, oneStepTime);

}

function Random() {
  const min = 1;
  const max = 100;
  return Math.round((Math.random() * (max - min) + min) * 100) / 100;
}

Ответы (1 шт):

Автор решения: Stanislav Volodarskiy

Попробуйте время преобразовывать нелинейной функцией. Например за пять секунд от нуля до сотни:

const counter = document.getElementById('counter').firstChild;

const countUp = () => {
    const y = t => 4 * t * t;
    const target = 5;
    const start = performance.now();

    const frame = () => {
        const dt = Math.min(target, (performance.now() - start) / 1000);
        counter.nodeValue = y(dt).toFixed(2);
        if (dt < target) {
            requestAnimationFrame(frame);
        } else {
            setTimeout(countUp, 1000);
        }
    };
    requestAnimationFrame(frame);
};
countUp();
<span id="counter">0</span> 

→ Ссылка