1
私は単純なSVG描画アプリケーションを書いています。今は線描画を最適化しようとしています。生の変種はすべてのmousemoveイベントで 'lineTo'を描画します。それは、見栄えの悪いシャープネスを作り出しますJS svgペインティング。描画頻度を下げる方法(mousemoveイベント)?
グローバル変数testIntを使用して、lineToのアクション間の遅延をシミュレートすると、本当に素晴らしい滑らかな線が得られますが、悪い習慣のようです。誰よりも良い解決策を提案できますか? (私はそれが基本的に既存の<パス>要素を修正言ったように)
は、ここに私のdrawLine関数のコードです:
drawLine: function(id, X, Y){
var path = document.getElementById(id);
if(path.getAttribute('d'))
{
testInt++;
if(testInt>=6)
{
PathHelper.addLineTo(path, X, Y);
testInt = 0;
}
}
else
{
PathHelper.moveTo(path, X, Y);
}
}
PathHelperは右の文字列を生成し、すでに作成したパスに挿入しています。
ああ、私はこの閉鎖機能について忘れてしまった。ありがとう) –
私は、タイムアウトが最良の選択ではないことを発見しました。なぜなら、ユーザーがマウスをゆっくり動かすと、この「シャープネス」が作成されるからです。私は以前の欲望とクロージャーロジックを組み合わせて使用しました。 –
@StasGarcia、もう一つの選択肢として、最後に描かれた座標と現在のマウス座標の間の距離を計算することができます。距離がある閾値を上回っている場合にのみ、新しい行を描画します。 –