単純な形状を作成した後、ユーザーが形状を互いにクリッピングすることでより複雑な形状を作成できるように、形状操作用のアプリを作成しています (つまり、2 つの円を組み合わせて、グループではなく単一のパスを使用して格納された 8 の字にします。または、2 つの円を交差させて「バイト」マークを作成するなど)、使用するグラフィック ライブラリを決定しようとしています。
SVG は、すぐに必要な機能 (形状の保存、移動、回転、スケーリング) の 80% を処理しているようです。問題は、残りの 20% (クリッピングを使用して複雑なポリゴンの新しいセットを作成する) は、自分のモジュールで SVG 機能を再作成しないと達成できないように思われることです (SVG 内で描画するために 1 回、形状を保存するために 1 回保存する必要があります)。クリッピングを自分で処理します)。SVGについては間違っている可能性がありますが、Raphaelライブラリ(SVGに基づく)について読むと、長方形を使用したクリッピングのみを処理しているように見えます.クリッピングでさえ一時的です(形状の一部のみをレンダリングしますが、形状全体を保存しますクリッピング四角形が移動されると再レンダリングされます)。おそらく、私はSVG標準について混乱しているだけです。
その結果、Canvas は、独自のクリッピング実装を機能させるために既に追跡しなければならない形状を追跡することによって余分なオーバーヘッドを導入しないため、より良い代替手段のように思えます。それだけでなく、移動、回転、スケーリングが可能なポリゴン クラスを既に実装しています。ただし、キャンバスには他にもいくつかの問題があります (独自の redraw メソッドを実装する必要があります。これは、Chrome および Firefox のブラウザー固有のフレームワークを利用する SVG ほど効率的ではないと確信しています。 Raphael のようなライブラリで無料で処理される IE の非互換性を受け入れるため)。
ありがとう