我正在测试一些Canvas编程,我对如何在绘制新路径时清除以前的路径提出疑问。
实施例: 绘制一个没有笔划和描边线的实心圆。 我有以下代码:
graphicContext.save();
graphicContext.beginPath();
graphicContext.arc(95,50,40,0,2*Math.PI);
graphicContext.fillStyle="rgb(50, 200, 200)";
graphicContext.fill();
graphicContext.restore();
graphicContext.save();
graphicContext.moveTo(0,0);
graphicContext.lineTo(200,100);
graphicContext.stroke();
graphicContext.restore();
然而,圆圈和直线都被抚摸。如何在不勾选圆圈的情况下划线?
答案 0 :(得分:2)
其次,在绘制线条之前使用beginPath
方法,因为您正在创建新路径。 beginPath
将重置/清除之前的路径......
var graphicContext = document.querySelector('#canvas').getContext('2d')
// circle
graphicContext.beginPath();
graphicContext.arc(95,50,40,0,2*Math.PI);
graphicContext.fillStyle="rgb(50, 200, 200)";
graphicContext.fill();
// line
graphicContext.beginPath();
graphicContext.moveTo(0,0);
graphicContext.lineTo(200,100);
graphicContext.stroke();
<canvas id="canvas"></canvas>