首页 > 代码库 > Canvas 练习及学习笔记
Canvas 练习及学习笔记
2016-11-02
在MOOC上 学习了关于 Canvas 的教程 受益匪浅
先上练习的demo
本人用的是 Chorme
暂时没有考虑兼容性问题
1 时钟 https://fanyear.github.io/Canvas/Clock/index.html
2 (放大镜)鼠标左键 https://fanyear.github.io/Canvas/Magnifier/index.html
3 缩放图像 https://fanyear.github.io/Canvas/ScaleImage/index.html
4 星星动画闪烁 https://fanyear.github.io/Canvas/StarTwinkling/index.html
5 炫酷计时动画效果 https://fanyear.github.io/Canvas/Timer/index.html
推荐MOOC 教程 http://www.imooc.com/u/108955/courses?sort=publish (一系列教程 讲得很好 有条理)
http://www.imooc.com/learn/338 (星星闪烁教程)
一下是我的学习笔记,更多是为了自己忘了的时候可以回来看看:
HTML
1 <canvas id="canvas">
2 Your browser doesn‘t support Canvas // 当浏览器不支持Canvas 的时候 才会显示
3 </canvas>
JavaScript
1 var canvas = document.getElementById("canvas");
2 var context = canvas.getContext("2d");
3
4 // canvas 基于状态
5
6 context.moveTo(100,100) // 起点
7 context.lineTo(200,200) //可直接使用 若没有moveTo
8
9 context.fill() //绘制
10 context.stroke()
11
12 context.lineWidth = 6
13 context.strokeStyle = "red"
14 context.fillStyle = "blue"
15
16 / * 有多种颜色表示方法 #bbb #123456 rgb(1,2,3) rgba(1,2,3,0.6) hsl(20,50%,28%) hsla(40,80%,20%,0.5) */
1 canvas.width = 800
2 canvas.height = 500 //建议用js设置
3
4 //Draw more lines
5
6 context.beginPath()
7
8 context.closePath() // 会闭合路径
9
10 //Draw a Rectangle
11
12 context.rect(x,y,width,height) //路径
13
14 context.fillRect(x,y,width,height)
15 context.strokeRect(x,y,width,height) //直接绘制
16
17 //例子
18
19 context.moveTo(100,200)
20 context.lineTo(300,200)
21 context.strokeStyle = "red"
22 context.stroke()
23
24
25 context.moveTo(400,500)
26 context.lineTo(500,500)
27 context.strokeStyle = "blue"
28 context.stroke()
29
30 //结果都为蓝色 应在两段代码之间加上 context.beginPath()
31
32
33
34 // 一般都是先填充 后描边
35
36 lineCap // butt(default) round square
37 lineJoin //miter(default) bevel round
38 miterLimit //有个默认值
39
40 //图形转换
41
42 translate(x,y) // 位移 效果会叠加 (所以要用到 save() restore())
43 rotate(deg) //旋转
44 scale(x,y) //会改变其他属性
45
46 //变化矩阵
47
48 transform(a,b,c,d,e,f) //级联
49
50 setTransform(a,b,c,d,e,f) //不级联
51
52 a //水平缩放
53 b //水平倾斜
54 c //垂直倾斜
55 d //垂直缩放
56 e //水平位移
57 f //垂直位移
58
59 //填充样式
60
61 //Steo 1
62 var grd1 = context.createLinearGradient(xstart,ystart,xend,yend)
63 var grd2 = context.createRadialGradient(x0,y0,r0,x1,y1,r1)
64
65 //Step 2
66 grd1.addColorStop(stop,color)
67 grd2.addColorStop(stop,colot)
68 .
69 .
70 .
71
72 //Step 3
73 context.fillStyle = grd1
74 context.fillStyle = grd2
75
76
77
78 // Pattern
79 var pat = context.craetePattern(img,repeat-style) //img 还可以是 video canvas
80 //repeat-style 有 no-repeat repeat-x repeat-y repeat
81 context.fillStyle = pat
82
83 //记得加上路径
Canvas 练习及学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。