您可以像在其他地方一样绘制多边形。
更换:
ctx.clearRect(290, 150, 80, 250);
有:
// Arrow-up shape: ctx.beginPath(); ctx.moveTo(320, 150); ctx.lineTo(420, 250); ctx.lineTo(360, 250); ctx.lineTo(360, 400); ctx.lineTo(280, 400); ctx.lineTo(280, 250); ctx.lineTo(220, 250); ctx.closePath(); ctx.fillStyle = "white"; ctx.stroke(); ctx.fill();
虽然另一个答案适用于您的情况,但在某些情况下,某人可能希望清除路径而不是仅仅填写它 - 为此, globalCompositionOperation 属性可以使用:
ctx.beginPath(); //draw path to clear here ctx.globalCompositionOperation = "destination-out"; ctx.fill(); ctx.globalCompositionOperation = "source-over";
这将告诉浏览器清除画布上的指定路径而不是填充它。将此属性设置为 source-over 然后操作将恢复默认的绘制模式。
source-over