计算1个周期的持续时间



我正在制作RGBGenerator,我想计算完成一个循环需要多少秒;Forumla:

ticks it needs for 1 cycle * speed / 1000 = seconds
ticks it needs for 1 cycle * speed / 1000 / 60 = minutes

但是计算错误;例子:如果它需要1791个节拍,速度为10ms/tick,则需要17.9秒(18秒)。当我开始倒计时时,完成一个周期需要超过18秒。

计算需要多少个刻度:

var r = settings.startR, g = settings.startG, b = settings.startB, range = settings.range, states = [], tick = 0;
states.push(Math.max(Math.abs((r - range)), Math.abs((g - range)), Math.abs((b- range))));
for(var i = 0; i < 6; i++) {
    states.push((states[i]+1) + range);
}
计算秒/分钟:

$( "#cycleSeconds" ).html("1 cycle = " + ((states[6]*speed/1000) >= 60 ? Math.round((states[6]*speed/1000/60)) + " minutes" : Math.round((states[6]*speed/1000)) + " seconds"));

现场演示(你需要设置速度输入到左边并按开始键)

有人知道为什么它计算错误,以及如何修复它吗?

为更准确的绘图使用窗口。

你实际上是这样做的:

    油漆
  1. 等待一段时间
  2. goto 2

你可能没有计算花在绘画上的时间&其他计算。这就是为什么持续时间大于tick * count

以防万一:Performance.now()将帮助您相当准确地测量执行时间

最新更新