私はキャンバスとデルタ時間の更新に非常に慣れていないので、無知を許してください。心拍数モニターを再作成しようとしています (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 だけを使ったよりスムーズなバージョンもありましたが、それほどスムーズでも柔軟でもないと言われました (最終的には「テール」をフェードアウトしたいと考えています)。