我对画布和增量时间更新非常陌生,所以请原谅我的无知。我正在尝试重新创建心率监视器(jsfiddle 中显示的屏幕截图,理想的最终渲染匹配https://www.youtube.com/watch?v=ew6Jp74vaN4)
我无法弄清楚为什么它似乎如此零星地行动,尤其是在调整浏览器大小或执行其他操作时(我认为增量计时背后的想法是它消除了延迟)
http://jsfiddle.net/alexcroox/CjCkV/
我正在使用 dt 来计算何时需要移动到下一个点
var distance = Math.sqrt(
(nextPosition.x-lastPosition.x)*(nextPosition.x-lastPosition.x) +
(nextPosition.y-lastPosition.y)*(nextPosition.y-lastPosition.y)
);
var duration = distance/this.speed;
var t = this.totalTime/duration;
var x = (1.0 - t)*lastPosition.x + t*nextPosition.x;
var y = (1.0 - t)*lastPosition.y + t*nextPosition.y;
我确实有一个只使用计数器和 sin 的更平滑的版本,但有人告诉我它不会那么平滑或灵活(我最终想淡出“尾巴”)