如果一个形状超出了javascript的画布,我如何剪切它?

如果一个形状超出了javascript的画布,我如何剪切它?,javascript,html5-canvas,Javascript,Html5 Canvas,我想创建一个圆,如果它超出了另一个形状,则将其切割出一部分 例如,如果圆的一半在正方形外,则将外部的所有部分都剪下,但不要剪内部的部分。类似于此片段的内容,除了正方形外的部分是隐藏的。我更喜欢避免屏蔽它,因为它将位于另一个画布上,覆盖整个屏幕 代码 var canvas=document.getElementById(“canvas”), ctx=canvas.getContext(“2d”); ctx.rect(20,20100100); ctx.stroke(); ctx.closePat

我想创建一个圆,如果它超出了另一个形状,则将其切割出一部分

例如,如果圆的一半在正方形外,则将外部的所有部分都剪下,但不要剪内部的部分。类似于此片段的内容,除了正方形外的部分是隐藏的。我更喜欢避免屏蔽它,因为它将位于另一个画布上,覆盖整个屏幕

代码

var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”);
ctx.rect(20,20100100);
ctx.stroke();
ctx.closePath();
ctx.beginPath();
ctx.arc(70,90,60,0,Math.PI*2,false)
ctx.stroke();
ctx.restore()

你可以
clip()
像这样画圆圈

var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”);
ctx.rect(20,20100100);
ctx.stroke();
ctx.closePath();
ctx.clip();//夹圆
ctx.beginPath();
ctx.arc(70,90,60,0,Math.PI*2,false)
ctx.stroke();
ctx.restore()

这是我为裁剪sqaure外部而调整的尺寸

var canvas=document.getElementById(“canvas”),
ctx=canvas.getContext(“2d”);
ctx.rect(20,20100100);
ctx.stroke();
ctx.closePath();
ctx.beginPath();
ctx.arc(70,90,60,10,-4*Math.PI*.05,假)
ctx.stroke();
ctx.restore()

这很简单。。谢谢