Comment nettoyer une région en forme de polygone dans un élément de voile?

J'ai utilisé la fonction clearRect, mais je n'ai pas vu d'équivalent pour les polygones. J'ai ingénument essayé:

ctx.fillStyle = 'transparent'; ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(100,50); ctx.lineTo(50, 100); ctx.lineTo(0, 90); ctx.closePath(); ctx.fill(); 

Mais cela crée simplement une région transparente et n'a pas d'effet sur ce qui existe déjà. Existe-t-il un moyen d'effacer les régions polygones à l'intérieur de l'élément toile?

Vous pouvez utiliser la composition avec l'opération définie sur 'destination-out' pour ceci:

 ctx.globalCompositeOperation = 'destination-out'; ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(100,50); ctx.lineTo(50, 100); ctx.lineTo(0, 90); ctx.closePath(); ctx.fill(); 

Exemple:

Entrez la description de l'image ici

Essayez-le sur jsFiddle