《HTML5 CANVAS基础教程》读书笔记
一、HTML5简介
1.HTML5新特性
1)结构元素:section,header,hgroup,footer,nav,article,aside,
2)内容元素:figure,figcaption,mark,time
3) 表单:浏览器端验证、输入类型、输入属性
4)媒体元素:audio元素、video元素、canvas元素
2.其它和H5相关的新技术
1)CSS3
2)web fonts
3) Geolocation API
4) SVG
5) web storage
6) web workers
7) WebSocket
三、Canvas基础知识
1.常用方法:
1)fillRecct():绘制方块
2)strokeRect():绘制方块(边框)
3)绘制线条:beginPath、moveTo、lineTo、closePath、stroke
4)fill():填充(与stroke对应)
5)arc(): 画圆
6)fillStyle()【strokeStyle()】:填充颜色
7) lineWidth:线宽
8)fillText【strokeText】:绘制文本(font属性用来设置字号和字体)
9)clearRect():清除
2.小技巧:
1)重设画布的长宽,可以清除画布上的所有内容(包括样式和颜色),据说这种效率更高哦~
2)画布全屏显示(参考P69页)
3)画布大小根据浏览器变动而变动(参考P71页)
四、canvas高级功能
1.保存和恢复绘图状态:context.save()、restore(),2个方法对状态的储存方式,是一个堆栈。
2.平移:context.translate(),平移的是坐标原点,而不是绘制对象
3.缩放:context.scale(),缩放也是对代码之后的对象起效果,而且对上面的原点坐标的平移也同样有效
4.旋转:context.rotate(),旋转是围绕着原点坐标转的,所以经常和translate方法一起使用
5.变换矩阵:transform()、setTransform,前者是在原来矩阵上应用一个相乘的效果,后者是直接设定对应的值。
6.透明:全局阿尔法值context.globalAlpha = 0.5
7.合成操作:对源和目标,两者的组合方式有多种选择(详见P87),有可能可以实现类似擦除、滤镜的效果。
8.阴影:shadowBlur、shadowColor、shadowOffsetX、shadowOffsetY
9.渐变:线性渐变(createLInearGradient)、放射渐变(createRadialGradient)
10.贝赛尔曲线:二次(quadraticCurveTo)、三次(bezierCurveTo)方法
11.将画布导出为图像:toDataURL(),可以通过生成URL直接在浏览器中查看
五、处理图像和视频
1.加载方法:context.drawImage(image,x,y);
2.调整大小的用法:drawImage(image,x,y,width,height);
3.加上裁剪的用法:drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh),具体用法参考P107
4.绘制的图像可以带上上一章学的各种特效:阴影、平移、变形等
5.访问像素值:context.getImageData(),计算得到像素值RGB数值的公式(P115)
6.从零绘制图像:createImageData(),putImageData(imageData,0,0)
7.利用ImageData的方法,可以实现马赛克效果、反转颜色、灰度、像素化的效果
8.处理视频:通过设置定时器和视频的帧数同步,取出视频的每一帧来应用到画布上,还可以加特效
六、制作动画
1.创建动画循环:更新对象、清除对象、绘制对象
2.使用函数来创建对象,来记忆绘制对象的形状
3.运动和改变方向,要使用三角函数、弧度的算法来实现
4.反弹是通过计算画布大小的方式实现
七、实现高级动画
1.准备工作:高中物理常识+牛顿运动定律(F = ma)
2.加速度实现:速度 += 加速度
3.摩擦力实现(模拟):速度 *= 摩擦系数
4.检测碰撞:正方形和小球有不同的计算公式
5.动量守恒定律,使得碰撞效果更逼真(不要深究公式)
八、太空保龄球游戏
1.使用HTML元素设计UI界面(要位于画布的前面,比较方便显示),使用CSS将UI界面移动到canvas元素上方
九、躲避小行星游戏
1.使用键盘输入控制游戏
2.利用save方法来保存火箭喷射火焰效果
3.假造横向卷轴的效果
4.给游戏增加难度(不断优化游戏)
5.给游戏添加声音
十、未来的Canvas
1.canvas与SVG区别:一个是位图、一个是矢量图,SVG在编辑和绘制形状方面比较好,而canvas在编辑像素级的东西(处理图像和视频)比较好。
2.canvas与flash:选择一款像FLASH那样好用的编辑器,canvas有性能问题,还好有几种解决方法(P236)
3.三维图形:canvas使用WebGL技术来建立三维图形。三维图形对专业要求比较高,可以利用框架来降低学习门槛
4.WebSocket技术:实现多人通信、游戏
《HTML5 CANVAS基础教程》读书笔记的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- Apache以及PHP的默认编码问题解决(详解)
如果你在网上搜索 “apache配置”,搜到的页面大多都会建议你在httpd.conf中加上这么一句:AddDefaultCharset GB2312.对于新手而且是只用GB2312编码的开发人来说, ...
- 关于Servlet会话跟踪的那些事儿
关于servlet会话跟踪,一搜都能搜出很多.我也不免落入俗套,也总结了一把.希望我所总结的知识尽量是知识海洋里的一汪清泉.能帮助到我自己和哪怕一个人,那也是值得的. 故事由来: 我们知道,http协 ...
- C语言预处理操作符
在看<深入剖析Nginx>时看见一个非常少见的C语言知识点:预处理操作符. #define conn(x,y) x##y //将子串x和y连接形成新的串 #define tochar(x) ...
- LoadRunner 如何进行接口的压力测试
主要压测的时候需要开发提供相关接口文档,或者自己录制.左侧的Name都是开发提供的接口参数名称,Value是相应的参数值.Action为开发给的测试地址.PS:注意在测试的时候设置Controller ...
- C# Distinct方法的使用笔记
引自:http://blog.csdn.net/shaopengfei/article/details/36426763 从C# 3.0开始提供了Distinct方法,这对于集合的使用有了更为丰富的方 ...
- 关于z-index的总结
z-index的作用 很多时候需要把一个元素覆盖到另一个元素之上,比如登入弹出框等,这个时候就需要z-index属性出场了.所以呢,z-index就是调节层的显示优先级,决定哪个显示在最上方.作用范围 ...
- Ehcache(2.9.x) - API Developer Guide, Cache Loaders
About Cache Loaders A CacheLoader is an interface that specifies load() and loadAll() methods with a ...
- Unity3D 之暂停和继续的实现
Time.timeScale 时间缩放 当timeScale传递时间1.0时和实时时间一样快.当timeScale传递时间0.5时比实时时间慢一半. 当timeScale传递时间为0时游戏基本上暂停了 ...
- asp.net上传文件时出现 404 - 找不到文件或目录。
昨天客户网站反应上传较大文件时出现404-找不到文件或目录的错误.如图: 网站上给出的提示是上传文件不能超过50M,但是在38M和40M这样的文件都不能上传了,显然不对. 在网上查了很久,第一个是检查 ...
- Javascript之简单按钮搜索功能
学习JavaScript我觉得真实的感觉就是可以任意设计,“没有做不到只有想不到!”即使简单,但是任何东西的复杂都是从简单.基础开始的!这是我自己做的一个超简单的"搜索引擎"按钮, ...