萌新的Canvas笔记(三)
2016-07-28 22:49
99 查看
用了图形变换的方法尝试了一个Demo之后,再来看一个图形变换的方法。
transform(a,b,c,d,e,f)
这个函数本质利用了一个图形变换矩阵,从左到右的参数依次是,水平缩放,水平倾斜,垂直倾斜,垂直缩放,水平位移,垂直位移。 使用了transform之后,会对之后要绘制的图形产生相应的变换。
setTransform(a,b,c,d,e,f)
由于transform是累计的,当使用过多的时候,会导致不知该如何变化才能达到想要的效果。使用setTransform,会忽略掉之前transform指定的变换,而从初始状态开始,设置一个全新的变换。
渐变之线性渐变
之前的fillStyle属性,不仅仅可以设置单独的颜色,否则就变成fillColor了。对于fillStyle,还可以用来设置渐变色。方法如下: 1.创建一个渐变线,表明渐变的方向。 2.对渐变线进行颜色设置。
代码如下:
var grd = context.createLinearGradient(0, 0, 0, 800); grd.addColorStop(0.0, "#fff"); grd.addColorStop(1.0, "#000"); context.fillStyle = grd; context.fillRect(0, 0, 800, 800);
效果如下:
解释: context.createLinearGradient创建一个渐变线,参数指明两个点,渐变线就为这两个点确定的线段。addColorStop为渐变线的每一部分指定颜色,第一个参数为从0.0~1.0的浮点数,可以指定多个渐变步骤。比如 0.0~0.5~1.0。
补充:
如果画布的过大,那么后面剩余的部分的颜色,会与最后的渐变色步骤颜色一致,即与1.0位置的颜色一致。 前面也同理。 如果过小,则只会将所在位置的颜色填充出来。忽略超过画布的部分。
渐变之径向渐变
有了线性渐变的基础后,理解径向渐变就容易的多 同样,径向渐变也分为两个步骤: 1.定义两个同心圆,为渐变范围(代替渐变线) 2.定义颜色的渐变步骤(addColorStop)
代码:
var radialgrad = context.createRadialGradient(400, 400, 0, 400, 400, 500); radialgrad.addColorStop(0.0, "white"); radialgrad.addColorStop(0.25, "yellow"); radialgrad.addColorStop(0.5, "green"); radialgrad.addColorStop(0.75, "blue"); radialgrad.addColorStop(1.0, "black"); context.fillStyle = radialgrad; context.fillRect(0, 0, 800, 800);
效果如下:
解释:
没什么好解释的。。跟线性渐变差不多
使用图片背景
fillStyle还允许使用图片来当做背景。道理与之前的一样,只不过这次是先创建pattern,并且设置好相关状态以后,再赋值给fillStyle。代码如下:
var icon = new Image(); icon.src = "icon.jpg"; icon.onload = function (){ var pattern = context.createPattern(icon, "no-repeat"); context.fillStyle = pattern; context.fillRect(0, 0, 800, 800); }
其中,方式可以是no-repeat,repeat-x,repeat-y,repeat这几种。
效果:
也可以将图片改成一个canvas,也有效果。也就是说允许我们自己绘制一个图像来当做背景。
也可以使用video做背景。这个以后再接触。
以上~
相关文章推荐
- HTML5调用摄像头实例
- Canvas 在高清屏下绘制图片变模糊的解决方法
- 使用canvas实现仿新浪微博头像截取上传功能
- js+HTML5实现canvas多种颜色渐变效果的方法
- javascript+HTML5的Canvas实现Lab单车动画效果
- JavaScript学习小结之使用canvas画“哆啦A梦”时钟
- js+canvas绘制矩形的方法
- JavaScript+html5 canvas制作的百花齐放效果完整实例
- jQuery+canvas实现的球体平抛及颜色动态变换效果
- html5 canvas js(数字时钟)实例代码
- JavaScript+canvas实现七色板效果实例
- javascript+canvas制作九宫格小程序
- 通过javascript把图片转化为字符画
- js+html5通过canvas指定开始和结束点绘制线条的方法
- JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
- JS+Canvas绘制时钟效果
- JS+Canvas 实现下雨下雪效果
- JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
- 基于canvas实现的绚丽圆圈效果完整实例
- PHP实现将HTML5中Canvas图像保存到服务器的方法