描画するオブジェクトに「消去」機能を実装するのに問題があります。私はそのようにオブジェクトを描きます:
function draw_obj1(context) {
context.lineTo(...)
context.arc(...)
//etc
}
そして、これらは私がキャンバス用に持っている画像の背景の上に描かれています(context.createPattern、fillStyle = patternなどを介して)。
したがって、上記の関数がさまざまなlineTo呼び出しを使用して三角形をトレースするとします。この描画を「消去」または「元に戻す」ために、私が持っていた1つの計画は、同じオブジェクトの「xor」バージョンをその上に再描画して、元に戻すことでした。これは、context.globalCompositeOperationを介して行います(https://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.htmlを参照)。
これはほとんど機能しますが、最終結果が私の水色の背景に対して完全に空白にならない点が異なります。元の黒い線の三角形に対して、明るい灰色がかった三角形として表示されます。
編集-私が試した別のアイデアについて言及するのを忘れました。移動する必要のある領域で「clearRect」を実行すると、水色の背景にホワイトホールが作成されますが、これは良くありません。
では、描画した線/円弧を元に戻すにはどうすればよいですか?
乾杯