一、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基础教程》读书笔记的更多相关文章

  1. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  2. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  3. CSAPP读书笔记--第八章 异常控制流

    第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...

  4. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. YAR 并行RPC框架研究

    前几天,部门召开了PHP技术峰会 学习会议,大家分别对这次会议的PPT 做了简单的介绍, 其中提到了 鸟哥[惠新辰]的一篇PPT<微博LAMP 演变>,如果谁有需要可以去谷歌搜,或者去 h ...

  2. 从 Auto Layout 的布局算法谈性能

    这是使用 ASDK 性能调优系列的第二篇文章,前一篇文章中讲到了如何提升 iOS 应用的渲染性能,你可以点击 这里 了解这部分的内容. http://t.cn/Rc4KbUC 在上一篇文章中,我们提到 ...

  3. BootStrap2学习日记11---单选框多选框

    单选框代码: <label for="country">国家</label> <select id="country"> & ...

  4. css笔记02:选择器(标签式和类)

    body { margin:; padding:; background:#000 url('images/backgrounds/star.png') no-repeat fixed; font: ...

  5. 不支持关键字:metadata

    将 string sqlConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Cos ...

  6. AspxGridView整理文档【转】

    ASPxGridView属性:概述设置(Settings) <Settings GridLines="Vertical" : 网格样式 Vertical, Both, Non ...

  7. [转]bat批处理实现TXT文本合并

    本文转自:http://quanhuaming.blog.163.com/blog/static/1405693672010210101124905/ 有朋友问是否有可以合并TXT文本文件的软件,于是 ...

  8. 关于Eclipse的Save时的自定义操作

    Eclipse中Save+S的时候会包含很多其他操作.例如代码格式化,自动导入或者删除jar包等等. 如果修改代码的时候不想让Eclipse做这些操作,有两种方法. 第一: 用一个文本编辑器打开这个文 ...

  9. Spring AOP原理解析

    原文链接请参见:http://blog.csdn.net/u010723709/article/details/47839307

  10. ibatis.net 多线程的调试

    ibatis是一个挺不错的半自动orm框架,从java移植到c# 在ibatis中是支持多线程操作的,但是这几天的使用过程中发现就框架本身任然存在一些问题,可能会让你对多线程的使用并不是那么的顺利 在 ...