在画布上绘制另一个边框

时间:2014-02-28 00:15:47

标签: javascript css canvas border stroke

我有问题。我需要在画布上绘制另一个边框。如果我试试这个:

c2.beginPath();

c2.moveTo(0, 0);

c2.lineTo(0, 100);
c2.lineWidth = Number(sw) + 6;
c2.strokeStyle = "red";
c2.stroke();
c2.lineTo(100, 100);
c2.lineWidth = Number(sw) + 6;
c2.strokeStyle = "#00ec11";
c2.stroke();
c2.lineTo(0, 100);
c2.lineWidth = Number(ss) + 6;
c2.strokeStyle = "red";
c2.stroke();
c2.closePath();
c2.lineWidth = Number(sw) + 6;
c2.strokeStyle = "#00ec11";
c2.stroke();

c2.fill();

它不起作用,因为所有线都有绿色边框。你能救我吗?

---编辑: 我可以;当关闭我的线条时,关闭补丁这个线条绘制形状。当我关闭补丁我的形状不正确。梅比的另一个想法?

1 个答案:

答案 0 :(得分:0)

c2.stroke();使用当前的strokeStyle重绘整个路径。所以最后,只会应用最后一种风格。

尝试在每个c2.closePath();之后添加c2.beginPath()后跟c2.stroke(),以开始一个可以有单独strokeStyle的新路径。

例如:

c2.lineTo(0, 100);
c2.lineWidth = Number(sw) + 6;
c2.strokeStyle = "red";
c2.stroke();
c2.closePath();

c2.beginPath();
c2.moveTo(0, 100);
c2.lineTo(100, 100);
c2.lineWidth = Number(sw) + 6;
c2.strokeStyle = "#00ec11";
c2.stroke();
c2.closePath();
. 
. 
.