资源名称:HTML5_Jav aS cript动画基础

内容简介:

《HTML5+Javascript动画基础》包括了基础知识、基础动画、高级动画、3D动画和其他技术5大部分,分别介绍了动画的基本概念、动画的Javascript基础、动画中的三角学、渲染技术、速度向量和加速度、边界与摩擦力、用户交互:移动物体、缓动与弹动、碰撞检测、坐标旋转与斜面反弹、撞球物理、粒子与万有引力、正向运动学:让事物行走、反向运动学:拖曳与伸出、三维基础、三维线条与填充、背面剔除与三维灯光、矩阵数学、秘诀与技巧等内容。

这些内容都是Web开发人员在深入如加速度、速度、缓冲、弹簧、碰撞检测、动量守恒、3D以及正向和反向运动物理概念之前,需要知道的所有关于三角函数的知识。在阅读本书的过程中,读者不但可以掌握脚本动画背后的概念,还可以创造出各种形式的精彩动画和游戏。

《HTML5+Javascript动画基础》面向所有使用HTML5或从Flash转过来的Web开发人员。

资源目录:

第一部分Javascript动画基础

第1章 动画的基本概念 2

1.1 动画 3

1.2 帧与运动 3

1.2.1 记录帧 4

1.2.2 程序帧 5

1.3 动态动画与静态动画 5

1.4 小结 6

第2章 动画的Javascript基础 7

2.1 动画基础 7

2.2 HTML5简介 8

2.2.1 对canvas的支持 8

2.2.2 性能 9

2.2.3 HTML5基本文档 9

2.2.4 CSS样式表 11

2.2.5 额外的脚本 12

2.2.6 调试 12

2.3 用代码实现动画 13

2.3.1 动画循环 13

2.3.2 使用requestAnimationFrame的动画循环 16

2.4 Javascript对象 17

2.4.1 基础对象 18

2.4.2 创建一类新对象 18

2.4.3 原型 19

2.4.4 函数风格 19

2.5 用户交互 20

2.5.1 事件与事件处理程序 20

2.5.2 监听器与事件处理程序 20

2.5.3 鼠标事件 22

2.5.4 鼠标位置 24

2.5.5 触摸事件 25

2.5.6 触摸位置 26

2.5.7 键盘事件 27

2.5.8 键盘码 28

2.6 小结 30

第3章 动画中的三角学 31

3.1 三角学 32

3.2 角 32

3.2.1 弧度和角度 32

3.2.2 canvas坐标系 33

3.2.3 三角形的边 35

3.2.4 三角函数 35

3.3 旋转 39

3.4 波 42

3.4.1 平滑的上下运动 43

3.4.2 线性垂直运动 45

3.4.3 脉冲运动 46

3.4.4 使用两个角的产生波 47

3.4.5 使用绘图API产生的波 48

3.5 圆与椭圆 49

3.5.1 圆周运动 49

3.5.2 椭圆运动 51

3.6 勾股定律 52

3.6.1 两点间距离 52

3.7 本章中的重要公式 55

3.7.1 三角学基础函数 55

3.7.2 角度与弧度互转 55

3.7.3 朝鼠标(或任意一点)旋转 55

3.7.4 创建波 56

3.7.5 创建圆形 56

3.7.6 创建椭圆形 56

3.7.7 获取两点间的距离 56

3.8 小结 57

第4章 渲染技术 58

4.1 canvas上的颜色 58

4.1.1 使用十六进制表示颜色值 59

4.1.2 色彩合成 60

4.1.3 提取三原色 61

4.1.4 透明度 62

4.1.5 与颜色相关的工具函数 63

4.2 绘图API 64

4.3 canvas上下文 65

4.4 使用clearRect消除图案 65

4.4.1 设置线条的外观 66

4.5 使用lineTo与moveTo绘制路径 66

4.5.1 使用quadraticCurveTo绘制曲线 68

4.5.2 创建多条曲线 70

4.5.3 其他形式的曲线 74

4.6 使用填充色创建图形 74

4.6.1 创建渐变填充色 75

4.6.2 设置渐变色的颜色 76

4.7 加载并绘制图片 77

4.7.1 加载图片 77

4.7.2 使用图片元素 78

4.7.3 使用视频元素 79

4.8 操纵像素 81

4.8.1 获取像素数据 81

4.8.2 绘制像素数据 82

4.9 本章中的重要公式 86

4.9.1 从十六进制转换到十进制 86

4.9.2 从十进制转换到十六进制 86

4.9.3 组合三原色 86

4.9.4 提取三原色 86

4.9.5 绘制一条穿越某个点的曲线 87

4.10 小结 87

第二部分基本动画

第5章 速度向量和加速度 90

5.1 速度向量 90

5.1.1 向量与速度向量 91

5.1.2 单轴上的速度向量 91

5.1.3 双轴上的速度向量 94

5.1.4 角速度 94

5.1.5 向量加法 96

5.1.6 鼠标追随者 97

5.1.7 速度向量扩展 98

5.2 加速度 100

5.2.1 单轴加速度 100

5.2.2 双轴加速度 102

5.2.3 重力加速度 104

5.2.4 角加速度 105

5.2.5 宇宙飞船 107

5.2.6 飞船控制 108

5.3 本章中的重要公式 111

5.3.1 将角速度分解为x、y轴上的速度向量 111

5.3.2 将角加速度(作用域物体上的力)分解为x、y轴上的加速度 111

5.3.3 将加速度加入速度向量 111

5.3.4 将速度向量加入位置坐标 111

5.4 小结 111

第6章 边界与摩擦力 112

6.1 环境边界 113

6.1.1 设置边界 113

6.1.2 移除物体 114

6.1.3 重置物体 117

6.1.4 屏幕环绕 119

6.1.5 反弹 121

6.2 摩擦力 124

6.2.1 摩擦力,正确方法 125

6.2.2 摩擦力,简便方法 126

6.2.3 摩擦力应用 127

6.3 本章中的重要公式 128

6.3.1 移除越界物体 128

6.3.2 重置越界物体 129

6.3.3 越界物体的屏幕环绕 129

6.3.4 应用摩擦力(正确方法) 129

6.3.5 应用摩擦力(简便方法) 129

6.4 小结 129

第7章 用户交互:移动物体 130

7.1 按下及释放物体 130

7.1.1 使用触摸事件 133

7.2 拖曳对象 135

7.2.1 结合运动代码的拖曳 136

7.3 投掷 139

7.4 小结 142

第三部分高级动画

第8章 缓动与弹动 144

8.1 比例运动 144

8.2 缓动 145

8.2.1 简单缓动 145

8.2.2 高级缓动 153

8.3 弹动 153

8.3.1 一维坐标上的弹动 154

8.3.2 二维坐标上的弹动 156

8.3.3 向移动的目标点弹动 157

8.3.4 弹簧在哪儿 158

8.3.5 链式弹动 159

8.3.6 多个目标点的弹动 161

8.3.7 目标偏移量 163

8.3.8 用弹簧连接多个物体 165

8.4 本章中的重要公式 170

8.4.1 简单缓动,详细版 170

8.4.2 简单缓动,缩略版 170

8.4.3 简单缓动,简易版 170

8.4.4 简单弹动,详细版 170

8.4.5 简单弹动,缩略版 171

8.4.6 简单弹动,简易版 171

8.4.7 有偏移量的弹动 171

8.5 小结 171

第9章 碰撞检测 172

9.1 碰撞检测的方法 172

9.2 基于几何图形的碰撞检测 173

9.2.1 两个物体间的碰撞检测 173

9.2.2 物体和点的碰撞检测 177

9.2.3 几何图形碰撞检测法的总结 179

9.3 基于距离的碰撞检测 179

9.3.1 基于距离的简单碰撞检测 180

9.3.2 弹性碰撞 182

9.4 多物体的碰撞检测策略 184

9.4.1 基础的多物体碰撞检测 184

9.4.2 多物体弹动 186

9.5 本章中的重要公式 189

9.5.1 基于距离的碰撞检测 189

9.5.2 多物体碰撞检测 189

9.6 小结 189

第10章 坐标旋转与斜面反弹 190

10.1 简单坐标旋转 190

10.2 高级坐标旋转 192

10.2.1 旋转单个物体 193

10.2.2 旋转多个物体 194

10.3 斜面反弹 196

10.3.1 执行旋转 197

10.3.2 优化代码 201

10.3.3 实现动态效果 202

10.3.4 修复“不从边缘落下”的问题 202

10.3.5 修复“线下”问题 204

10.3.6 从多个斜面反弹 205

10.4 本章中的重要公式 208

10.4.1 坐标旋转 208

10.4.2 反向坐标旋转 208

10.5 小结 208

第11章 撞球物理 209

11.1 质量 209

11.2 动量 210

11.3 动量守恒 210

11.3.1 单轴上的动量守恒 212

11.3.2 双轴上的动量守恒 216

11.4 本章中的重要公式 231

11.4.1 动量守恒的数学表示 231

11.4.2 动量守恒的Javascript代码 231

11.5 小结 231

第12章 粒子与万有引力 232

12.1 粒子 232

12.2 万有引力 233

12.2.1 万有引力 234

12.2.2 碰撞检测及反应 236

12.2.3 轨道运动 237

12.3 弹力 238

12.3.1 万有引力VS弹力 238

12.3.2 弹力节点花园 238

12.3.3 相连的节点 241

12.3.4 有质量的节点 242

12.4 本章中的重要公式 244

12.4.1 基本引力 244

12.4.2 引力公式的Javascript实现 244

12.5 小结 244

第13章 正向运动学:让物体行走 245

13.1 介绍正向和反向运动学 245

13.2 正向运动学编程入门 246

13.2.1 移动一个节段 246

13.2.2 移动两个节段 251

13.3 过程自动化 253

13.3.1 建立一个自然行走周期 254

13.3.2 动态调整 257

13.4 让它真实地行走 260

13.4.1 给它一些空间 260

13.4.2 加入重力 260

13.4.3 处理碰撞 261

13.4.4 处理反作用力 262

13.4.5 屏幕环绕,重复 264

13.5 小结 267

第14章 反向运动学:拖曳与伸出 268

14.1 伸出和拖曳单个节段 268

14.1.1 伸出单个节段 269

14.1.2 拖曳单个节段 270

14.2 拖曳多个节段 270

14.2.1 拖曳两个节段 271

14.2.2 拖曳更多节段 272

14.3 伸出多个节段 274

14.3.1 伸向鼠标位置 274

14.3.2 伸向一个物体 279

14.3.3 加入一些交互 280

14.4 使用标准反向运动学方法 281

14.4.1 介绍余弦定理 281

14.4.2 编程实现余弦定理 283

14.5 本章中的重要公式 285

14.5.1 余弦定理 285

14.5.2 Javascript中的余弦定理 285

14.6 小结 285

第四部分3D动画

第15章 三维基础 288

15.1 第三维度与透视图 289

15.1.1 z轴 289

15.1.2 透视图 290

15.2 速度与加速度 293

15.3 反弹 295

15.3.1 单物体反弹 295

15.3.2 多物体反弹 297

15.3.3 Z排序 300

15.4 重力 301

15.5 屏幕环绕 304

15.6 缓动与弹动 311

15.6.1 缓动 311

15.6.2 弹动 312

15.7 坐标旋转 314

15.8 碰撞检测 319

15.9 本章中的重要公式 321

15.9.1 基本透视图 321

15.9.2 Z排序 321

15.9.3 坐标旋转 322

15.9.4 三维距离计算 322

15.10 小结 322

第16章 三维线条与填充 323

16.1 创建点和线 323

16.2 创建图形 328

16.3 创建三维填充 332

16.3.1 使用三角形 332

16.4 三维实体建模 337

16.4.1 建模旋转的立方体 337

16.4.2 建模其他形状 339

16.5 移动三维实体 343

16.6 小结 344

第17章 背面剔除与三维灯光 345

17.1 背面剔除 346

17.2 增强的深度排序 348

17.3 三维灯光 349

17.4 小结 356

第五部分其他技巧

第18章 矩阵数学 358

18.1 矩阵基础 358

18.2 矩阵运算 359

18.2.1 矩阵加法 359

18.2.2 矩阵乘法 360

18.3 canvas变换 363

18.4 小结 366

第19章 秘诀与技巧 367

19.1 布朗(随机)运动 367

19.2 随机分布 370

19.2.1 正方形分布 370

19.2.2 圆形分布 372

19.2.3 偏向分布 374

19.2.4 基于碰撞的分布 376

19.3 基于定时器和基于时间的动画 378

19.3.1 基于定时器的动画 378

19.3.2 基于时间的动画 379

19.4 等质量物体之间的碰撞 381

19.5 集成声音 382

19.6 小结 385

附录A 常用公式 386

A.1 第3章 386

A.1.1 三角学基础函数 386

A.1.2 角度与弧度互转 386

A.1.3 朝鼠标指针(或任意一点)旋转 386

A.1.4 创建波 386

A.1.5 创建圆形 387

A.1.6 创建椭圆形 387

A.1.7 获取两点间的距离 387

A.2 第4章 387

A.2.1 从十六进制转换到十进制 387

A.2.2 从十进制转换到十六进制 387

A.2.3 组合三原色 387

A.2.4 提取三原色 388

A.2.5 绘制一条穿越某个点的曲线 388

A.3 第5章 388

A.3.1 将角速度分解为x、y轴上的速度向量 388

A.3.2 将角加速度(作用于物体上的力)分解为x、y轴上的加速度 388

A.3.3 将加速度加入速度向量 388

A.3.4 将速度向量加入位置坐标 388

A.4 第6章 388

A.4.1 移除越界物体 388

A.4.2 重置越界物体 389

A.4.3 屏幕环绕越界物体 389

A.4.4 应用摩擦力(正确方法) 389

A.4.5 应用摩擦力(简便方法) 389

A.5 第8章 389

A.5.1 简单缓动,详细版 389

A.5.2 简单缓动,缩略版 390

A.5.3 简单缓动,简易版 390

A.5.4 简单弹动,详细版 390

A.5.5 简单弹动,缩略版 390

A.5.6 简单弹动,简易版 390

A.5.7 有偏移量的弹动 390

A.6 第9章 391

A.6.1 基于距离的碰撞检测 391

A.6.2 多物体碰撞检测 391

A.7 第10章 391

A.7.1 坐标旋转 391

A.7.2 反向坐标旋转 391

A.8 第11章 391

A.8.1 动量守恒的数学表示 391

A.8.2 动量守恒的Javascript代码 392

A.9 第12章 392

A.9.1 基本引力 392

A.9.2 引力公式的Javascript实现 392

A.10 第14章 392

A.10.1 余弦定理 392

A.10.2 Javascript中的余弦定理 392

A.11 第15章 393

A.11.1 基本透视图 393

A.11.2 Z排序 393

A.11.3 坐标旋转 393

A.11.4 三维距离计算 393

资源截图:

HTML5_Jav aS cript动画基础