老师举例的边为10像素,lineto最后一个终点等于起点也可以产生封闭效果,不过因为画笔像素太大,导致封闭会产生一个缺口,用closePath可以无缝衔接,但是用了closePath后,再用lineto最后一个终点等于起点就等于多余的代码了,所以就没用了
如果在同一个方法里面创造和调用,可以不用传入参数,但更常见的方式是,把所有需要的绘制方法库存在另外一个js文件里,需要的时候再引入,这时候,参数传入ctx就又必要了
第22行,你传进去的一个字符串,一个参数,但是这个接口需要的是两个参数,打开控制台就可以看到错误
这是由canvas的样式决定的,当你lineTo回到起点时,canvas可不会认为你这条线是跟起点是连起来的,而是认为你这条线跟起点重合了,所以不会产生转角样式,简单的讲,就是断了。如果要解决这个问题,很简单:
当你接下来是要lineTo到起点的时候,直接
cxt.closePath();
cxt.stroke();
封闭路径后再执行stroke()函数,这样的话,canvas会自动把终点和起点连在一起并且创造转角样式;
一般来说,画三角形只需要moveTo起点,lineTo第一个点,lineTo第二个点,closePath封闭路径,stroke执行划线,就可以了
cxt.fillStyle=fillColor; cxt.strokeStyle=borerColor;
fillColor和borerColor是变量,不能用引号。
mark!老师讲解详细,学起来挺轻松的。有用!!
形参和实参