0

最初にキャンバスをクリアしてからすべてを再描画することなく、キャンバス要素 (scaleまたはtranslateまたは)に変換を適用する方法はありますか? setTransform私が持っている特定の効果は、マウスを使用してグラフをドラッグすることです(translateマウスを何度も何度もドラッグします)が、翻訳するたびに、キャンバスをクリアして、そこにあったものを再描画する必要があります. 理想的には、メソッドを呼び出すだけで、translate超高速の組み込みメソッドがキャンバスを再レンダリングするようにしたいと考えています。再描画するものが十分な量になると、反復と再描画のコストだけで、パフォーマンスが望ましくないものになる可能性があります。

ここでパフォーマンスを向上させる方法はありますか?

4

1 に答える 1

1

移動、回転、スケーリングはキャンバスにパラメーターを設定するだけで、既存のコンテンツには何もしないため、毎回再描画する必要があります。キャンバスに次に描画されるものにのみ適用されます。

ただし、代わりに CSS を使用して変換を試みることはできます。これにより、コンテンツを含むキャンバス要素が変換されます。

この場合、マウス座標のカウンターオフセットを計算する必要があることに注意してください(キャンバス自体に変換を保持する場合も同様です)。

于 2013-07-12T19:25:14.930 に答える