javascript - 如何只清除矩形边框? (JS, Canvas )

标签 javascript canvas html5-canvas

我试图只清除 strokeRect() 并将内容保留在该矩形中。 在此示例中,如何在不影响红色矩形的情况下清除绿色矩形?

 var cut = [50, 70, 100, 100]
 var cut1 = [60, 85, 60, 60]
 var c = document.getElementById("canvas");
 var ctx = c.getContext("2d");
 ctx.beginPath();
 ctx.rect(cut[0], cut[1], cut[2], cut[3]);
 ctx.lineWidth = 3;
 ctx.strokeStyle = 'green';
 ctx.stroke();
 ctx.closePath();
 
 ctx.beginPath();
 ctx.rect(cut1[0], cut1[1], cut1[2], cut1[3]);
 ctx.lineWidth = 3;
 ctx.strokeStyle = 'red';
 ctx.stroke();
 ctx.closePath();
<canvas id="canvas" width=400px height=200px></canvas>

不知道怎么办 提前致谢!

最佳答案

您需要清除 Canvas 并重新绘制红色矩形。

var c = document.getElementById("canvas");
 c.width=400;
 c.height=200;
 var ctx = c.getContext("2d");

 var cut = [50, 70, 100, 100]
 var cut1 = [60, 85, 60, 60]
 
 function drawRectangle(cut,fill){
 ctx.beginPath();
 ctx.rect(cut[0], cut[1], cut[2], cut[3]);
 ctx.lineWidth = 3;
 ctx.strokeStyle = fill;
 ctx.stroke();
 ctx.closePath();
 }

drawRectangle(cut,"green");
drawRectangle(cut1,"red");



clear.addEventListener("click",()=>{
ctx.clearRect(0,0, c.width, c.height);
drawRectangle(cut1,"red");
});
canvas{display:block;}
<button id="clear">clear</button>
<canvas id="canvas" width=400px height=200px></canvas>

关于javascript - 如何只清除矩形边框? (JS, Canvas ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52440758/

相关文章:

vector - 如何将 BezierCurve 转换为 B 样条曲线?

javascript - 如何从 Aurelia-dialog 中的 DI 容器注入(inject)对象

javascript - 为什么使用 Math.max 作为参数在这种情况下不起作用?

JAVASCRIPT - 单击更改元素 CSS

javascript - FabricJS v.2 和 AngularJS – 动态设置 Canvas 背景图像

JavaScript- 将鼠标 X 和 Y 位置存储在变量中,并随着鼠标移动不断更新它们

javascript - Canvas - 如何正确旋转垂直/水平图像?

javascript - 如何使用 jCrop 调整图像大小以适应所有纵横比?

javascript - CanvasContext2D drawImage() 问题 [onload 和 CORS]

javascript - 手动调用与单击 HTML 按钮时相同的 JavaScript 函数会产生不同的结果