我正在尝试使用canvas绘制线条,并使用for循环更改坐标。
这是我的canvas元素:
<canvas id="c" width="300px" height="300px"></canvas>
这里是 JavaScript 代码:
var c = document.getElementById('c');
ci = c.getContext('2d');
for(var a = 18; a < 300; a +=18){
fnc(a, ci);
}
function fnc(x, ci){
ci.strokeStyle = 'red';
ci.moveTo(0, x);
ci.lineTo(300, x); ci.lineWidth = 0.2; ci.stroke();
}
您可以看到,我正在尝试在这些线之间使用18像素的间隔进行绘制。但是,线条的粗细和颜色(或不透明度,我不确定)从上到下发生了变化。
这里是一个示例:http://jsfiddle.net/J6zzD/1/
所以,我找不到错误在哪里。为什么颜色和厚度不同呢?
更新:
我将这些行代码写在函数外面,现在所有的线条都变得模糊了,但是它们的厚度是一样的。太奇怪了:
ci.strokeStyle = 'red';
ci.lineWidth = 0.2; ci.stroke();
这里有一个演示:http://jsfiddle.net/J6zzD/4/