一、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. 有符号的范围,-128~+127详解(zt)

    这是一个困惑了我几年的问题,它让我对现在的教科书和老师极其不满,从我N年前开始摸电脑时,就几乎在每一本C++教科书上都说,8位有符号的取值范围是-128~+127,为什么不是-127~+127呢,后来 ...

  2. 在openshift上使用django+postgresql

    openshift上用的是django 1.7,数据库选择的是postgresql 9.2 本地开发用的是sqlite3数据库,发布到openshift上后是没有数据的(本地的sqlite3数据库里的 ...

  3. python(5)–random模块及验证码

    1. random.random()      随机小数 >>> random.random() 0.6633889413427193 2. random.randint(1,9)  ...

  4. [转]在 Windows Server 2012 上安装 IIS 8

    本文转自:http://www.starland.net.cn/blog/view/158/1.aspx 本文译自:http://learn.iis.net/page.aspx/1088/instal ...

  5. LeetCode 3

    Longest Substring Without Repeating Characters Given a string, find the length of the longest substr ...

  6. LeetCode 260

    Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...

  7. 关于VMware桥接的注意事项

    VMware 使用桥接  想固定住虚拟机的IP的同时还可以访问外网. 通过Linux的可视化操作界面固定设置IP,网关,子网掩码等配置信息,如下图: 附录本地Windows中的IP地址信息: 虚拟机和 ...

  8. 新增html元素的使用

    今天学习HTML5中新增元素的使用 (Ⅰ)新增主体结构元素 Section元素:用于对网站或应用程序中的内容进行分块. <section> <h1></h1> &l ...

  9. CSS组件化思考

    为什么组件化? 分层设计,代码复用,减少冗余: 维护方便,弹性好: 如何组件化? 目前代码分成三级: 第一级粒度最细,是基础,主要包含字体配置,颜色配置,UI框架(比如MUI或者pure.css): ...

  10. 关于java.lang.NullPointerException: Module 'null' not found.的问题

    在用eclipse做struts1项目时,配置都ok了.可是一运行就报java.lang.NullPointerException: Module 'null' not found.错. 代码如下: ...