-1

それがコードです: http://jsfiddle.net/Mgq79/3/

  for (var xgrid = 0; xgrid < (canvasWidth / grid_step); xgrid++)
  {
    ctx.moveTo(xgrid * grid_step, 0);
    ctx.lineTo(xgrid * grid_step, canvasHeight);
  }
  for (var ygrid = 0; ygrid < (canvasHeight / grid_step); ygrid++)
  {
    ctx.moveTo(0, ygrid * grid_step);
    ctx.lineTo(canvasWidth, ygrid * grid_step);
  }

簡単に言えば、グリッドを追加した後、小さな速度値 (<=150m/s) でのレンダリング中に遅延が発生することに気付きましたが、1000m/s の上限付近ではほぼスムーズでした。では、この部分を最適化するにはどうすればよいでしょうか。

ありがとう

ps リンクを更新しました また、弾道が 3 つ以上になるとラグが非常に顕著になることに注意してください

4

1 に答える 1

1

私にとってはほぼ同じように機能します。わずか 1 ミリ秒の違いで、実際には気付かないでしょう。

私は本当にそのグリッドの描画を何度もスキップしたいと思い、キャンバスを透明にし、グリッドをキャンバス コンテナーの繰り返し背景画像として使用します。

または、一時キャンバスに一度描画してから drawimage を使用し、何らかの理由で再描画が必要な場合はキャンバスに移動します。

また、1x1 の長方形ではなく、パスを使用してグラフを描画する必要があります。すべてのポイントがそこにあると、パスを終了できます。繰り返しごとに四角形を描画して塗りつぶすのは遅くなります。

于 2013-03-22T08:40:04.380 に答える