我遇到了这个问题,我将lineWidth添加到一个canvas-object,然后同一个canvas中的所有canvas-objects获得相同的lineWidth。例如:
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.moveTo(20,20);
ctx.lineTo(20,100);
ctx.lineTo(70,100);
ctx.lineWidth = 10;
ctx.closePath();
ctx.stroke();
ctx.fillStyle="red";
ctx.fill();
ctx.beginPath();
ctx.arc(200, 100, 50, 0, 2 * Math.PI);
ctx.fillStyle="blue";
ctx.fill();
ctx.stroke();
ctx.closePath();
</script>
</body>
</html>
如何使lineWidth仅适用于一个对象?
答案 0 :(得分:1)
将lineWidth行更改为:
var defaultLineWidth = ctx.lineWidth;
ctx.lineWidth = 10;
然后在第二个绘图操作中,添加:
ctx.lineWidth = defaultLineWidth;
答案 1 :(得分:0)
它以州为基础。您必须稍后将lineWidth重置为下一个路径所需的值。
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.moveTo(20,20);
ctx.lineTo(20,100);
ctx.lineTo(70,100);
ctx.lineWidth = 10;
ctx.closePath();
ctx.stroke();
ctx.fillStyle="red";
ctx.fill();
ctx.lineWidth = 3; //this
ctx.beginPath();
ctx.arc(200, 100, 50, 0, 2 * Math.PI);
ctx.fillStyle="blue";
ctx.fill();
ctx.stroke();
ctx.closePath();
答案 2 :(得分:0)
我会尝试设置
ctx.lineWidth = 0;
再次致电ctx.stroke()
之前。