跟着老师的视频过了一遍所有例子,实在是太棒了,非常期待老师的下一期canvas课程,求早点更新(●'◡'●)
2015-05-10
最新回答 / 小王子抓猫咪
save和restore是用于绘制环境的保存与还原,如果你不写这一对方法,你前面进行的操作(全屏先涂#333)就不会被还原,而是在原来的绘制环境(简单理解就是原图形)上进行新的操作,这样你第二次画的内容都是在原图上画的。clip与你第一次restore的顺序没有关系,你可以把每一帧的绘画放在一个save和restore之间,最重要的是你需要在clip前调用beginpath方法,如果不调用beginpath你每次的剪切圆不会消失而是一直保持在画面上。调用一个beginpath,closepath就可以啦。
2015-05-05
刚开始我的miterLimit也没看出效果,查了下文档
“当宽线条使用设置为 "miter" 的 lineJoin 属性绘制并且两条线段以锐角相交的时候,所得的斜面可能相当长。当斜面太长,就会变得不协调。miterLimit 属性为斜面的长度设置一个上限。这个属性表示斜面长度和线条长度的比值。默认是 10,意味着一个斜面的长度不应该超过线条宽度的 10 倍。如果斜面达到这个长度,它就变成斜角了。”
然后重新设置了下内圆半径和miterlimit的值 就看出效果了。
“当宽线条使用设置为 "miter" 的 lineJoin 属性绘制并且两条线段以锐角相交的时候,所得的斜面可能相当长。当斜面太长,就会变得不协调。miterLimit 属性为斜面的长度设置一个上限。这个属性表示斜面长度和线条长度的比值。默认是 10,意味着一个斜面的长度不应该超过线条宽度的 10 倍。如果斜面达到这个长度,它就变成斜角了。”
然后重新设置了下内圆半径和miterlimit的值 就看出效果了。
2015-05-03
最新回答 / 小王子抓猫咪
你用bezierCurveTo画的多复杂的图形都能用closePath方法闭合鼠标点击可以获取x y坐标通过context.isPointInPath这个方法来进行判断啊
2015-04-27