我无法为我绘制的对象实现“擦除”功能。我像这样绘制对象:
function draw_obj1(context) {
context.lineTo(...)
context.arc(...)
//etc
}
这些是在我为画布拥有的图像背景之上绘制的(通过 context.createPattern、fillStyle = pattern 等)。
所以说上面的函数使用各种 lineTo 调用来追踪一个三角形。现在要“擦除”或“撤消”此绘图,我的一个计划是在其上重新绘制同一对象的“异或”版本,以撤消它。我通过 context.globalCompositeOperation 执行此操作(请参阅:https ://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.html )。
这几乎可行,除了最终结果在我的浅蓝色背景下并不完全空白。它是一个浅灰色的三角形,而不是原来的黑线三角形。
编辑 - 忘了提及我尝试过的另一个想法。在我需要离开的区域上执行“clearRect”会在我的浅蓝色背景中产生一个白洞,这不好。
那么我应该如何撤消我绘制的线条/弧线?
干杯