| 书[0名0]: | HTML5 Canvas核心技术:图形.动画与游戏开发|3767324 |
| 图书定价: | 99元 |
| 图书作者: | (美)David Geary |
| 出版社: | 机械工业出版社 |
| 出版日期: | 2013/5/1 0:00:00 |
| ISBN号: | 9787111416340 |
| 开本: | 16开 |
| 页数: | 486 |
| 版次: | 1-1 |
| 作者简介 |
| David Geary,资深软件开发专家,擅长 HTML5、CSS和等Web开发技术和Java技术。他是一位[0优0]秀的作家,著有[0畅0]销书《Graphic Java 2:Swing,Third Edition》 (《Java 2图形设计卷2:Swing》,机械工业出版社,2000年出版)和《Core JavaServerTM Faces,Third Edition》(与Cay Horstmann合著,由Prentice H[0all0]于2010年出版)。他还是一位[0优0]秀的演讲者,是各种演讲活动的常客,曾三度获得“JavaOne Rock Star”荣誉称号,并22011年同他人联合创立了HTML5 Denver Meetup Group。此外,他还是一位经验丰富的技术顾问,主要传授与网络应用开发相关的技术。爱飞翔,资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。他是手机软件开发引擎AgileMobileEngine的创始人兼项目经理,同时也是CatEngine手机游戏开发引擎的联合创始人兼代码维护员。他对[0极0]限编程、设计模式、重构、测试驱动开发、敏捷软件开发等也有较深入的研究,目前负责敏捷移动开发网(http://www. agilemobidev.com/)的运营。业余爱好文[0学0]和历[0史0],有一定的文[0学0]造诣。 |
| 内容简介 |
| 《HTML5 Canvas核心技术:图形、动画与游戏开发》是HTML5 Canvas[0领0]域的标杆之作,也是迄今为止该[0领0]域内容为全面和深入的著作之一,是公认的经典、五星级[0超0]级[0畅0]销书、资深技术专家David Geary新力作。它不仅全面讲解了canvas元素的API,以及如何利用Canvas进行图形绘制、动画制作、物理效果模拟、碰撞检测、游戏开发、移动应用开发,还包含[0大0]量实例,可操作性[0极0]强。 全书共分11章。[0第0]1章介绍了canvas元素及如何在网络应用程序中使用它;[0第0]2章深入研究了如何使用Canvas的API进行绘制;[0第0]3章告诉读者如何绘制并操作Canvas中的文本;[0第0]4章专门讲解图像、图像的操作及视频处理;[0第0]5章介绍如何实现平滑的动画效果;[0第0]6章讲解如何用语言来实现精灵;[0第0]7章展示了如何在动画中模拟物理效果;[0第0]8章介绍了进行碰撞检测所用的技术;[0第0]9章以一个简单但是高效的游戏引擎开始,提供了游戏制作所需的全部支持功能;[0第0]10章讨论了实现自定义控件的通用方[0法0];[0第0]11章专门讲述如何实现基于Canvas的手机应用程序。 |
| 目录 |
《HTML5 Canvas核心技术:图形、动画与游戏开发》 译者序 前言 [0第0]1章 基础[0知0]识 1 1.1 canvas元素 1 1.1.1 canvas元素的[0大0]小与绘图表面的[0大0]小 4 1.1.2 canvas元素的API 5 1.2 Canvas的绘图环境 6 1.2.1 2d绘图环境 6 1.2.2 Canvas状态的保存与恢复 8 1.3 本书程序清单的规范格式 9 1.4 开始[0学0]习HTML5 10 1.4.1 规范 10 1.4.2 浏览器 11 1.4.3 控制台与调试器 11 1.4.4 性能 13 1.5 基本的绘制操作 15 1.6 事件处理 18 1.6.1 鼠标事件 18 1.6.2 键盘事件 22 1.6.3 触摸事件 23 1.7 绘制表面的保存与恢复 23 1.8 在Canvas中使用HTML元素 25 1.9 打印Canvas的内容 32 1.10 离屏canvas 35 1.11 基础数[0学0][0知0]识简介 37 1.11.1 求解代数方程 37 1.11.2 三角函数 38 1.11.3 向量运算 39 1.11.4 根据计量单位来推导等式 42 1.12 总结 44 [0第0]2章 绘制 45 2.1 坐标系统 46 2.2 Canvas的绘制模型 47 2.3 矩形的绘制 48 2.4 颜色与透明度 50 2.5 渐变色与图案 52 2.5.1 渐变色 52 2.5.2 图案 54 2.6 阴影 57 2.7 路径、描边与填充 60 2.7.1 路径与子路径 63 2.7.2 剪纸效果 64 2.8 线段 69 2.8.1 线段与像素边界 70 2.8.2 网格的绘制 71 2.8.3 坐标轴的绘制 72 2.8.4 橡皮筋式的线条绘制 74 2.8.5 虚线的绘制 79 2.8.6 通过扩展CanvasRenderingContext2D来绘制虚线 80 2.8.7 线段端点与连接点的绘制 81 2.9 圆弧与圆形的绘制 83 2.9.1 arc()方[0法0]的用[0法0] 83 2.9.2 以橡皮筋式辅助线来协助用户画圆 85 2.9.3 arcTo()方[0法0]的用[0法0] 86 2.9.4 刻度仪表盘的绘制 88 2.10 贝塞尔曲线 93 2.10.1 二次方贝塞尔曲线 93 2.10.2 三次方贝塞尔曲线 95 2.11 多边形的绘制 97 2.12 高级路径操作 102 2.12.1 拖动多边形对象 102 2.12.2 编辑贝塞尔曲线 107 2.12.3 自动滚动网页,使某段路径所对应的元素显示在视窗中 115 2.13 坐标变换 116 2.13.1 坐标系的平移、缩放与旋转 116 2.13.2 自定义的坐标变换 119 2.14 图像合成 123 2.15 剪辑区域 128 2.15.1 通过剪辑区域来擦除图像 128 2.15.2 利用剪辑区域来制作伸缩式动画 133 2.16 总结 135 [0第0]3章 文本 137 3.1 文本的描边与填充 137 3.2 设置字型属性 141 3.3 文本的定位 144 3.3.1 水平与垂直定位 144 3.3.2 将文本居中 146 3.3.3 文本的度量 147 3.3.4 绘制坐标轴旁边的文本标签 148 3.3.5 绘制数值仪表盘周围的文本标签 151 3.3.6 在圆弧周围绘制文本 152 3.4 实现文本编辑控件 154 3.4.1 指示文本输入位置的光标 154 3.4.2 在Canvas中编辑文本 159 3.4.3 文本段的编辑 163 3.5 总结 174 [0第0]4章 图像与视频 175 4.1 图像的绘制 176 4.1.1 在Canvas之中绘制图像 176 4.1.2 drawImage()方[0法0]的用[0法0] 177 4.2 图像的缩放 179 4.3 将一个Canvas绘制到另一个Canvas之中 183 4.4 离屏canvas 186 4.5 操作图像的像素 189 4.5.1 获取图像数据 189 4.5.2 修改图像数据 195 4.6 结合剪辑区域来绘制图像 208 4.7 以图像制作动画 211 4.8 图像绘制的安全问题 216 4.9 性能 216 4.9.1 对比drawImage(HTMLImage)、drawImage(HTMLCanvas)与putImageData()的绘图效率 217 4.9.2 在Canvas中绘制另一个Canvas与绘制普通图像之间的对比;在绘制时缩放图像与保持原样之间的对比 217 4.9.3 遍历图像数据 218 4.10 放[0大0]镜 222 4.10.1 使用离屏canvas 224 4.10.2 接受用户从文件系统中拖放进来的图像 225 4.11 视频处理 227 4.11.1 视频格式 227 4.11.2 在Canvas中播放视频 229 4.11.3 视频处理 230 4.12 总结 234 [0第0]5章 动画 235 5.1 动画循环 235 5.1.1 通过requestAnimationFrame()方[0法0]让浏览器来自行决定帧速率 237 5.1.2 Internet Explorer浏览器对requestAnimationFrame()功能的实现 241 5.1.3 可移植于各浏览器平台的动画循环逻辑 241 5.2 帧速率的计算 248 5.3 以不同的帧速率来执行各种任务 249 5.4 恢复动画背景 250 5.4.1 利用剪辑区域来处理动画背景 250 5.4.2 利用图块复制技术来处理动画背景 252 5.5 利用[0[0双0]0]缓冲技术绘制动画 253 5.6 基于时间的运动 254 5.7 背景的滚动 257 5.8 视差动画 261 5.9 用户手势 264 5.10 定时动画 266 5.10.1 秒表 266 5.10.2 动画计时器 269 5.11 动画制作的佳指导原则 270 5.12 总结 271 [0第0]6章 精灵 272 6.1 精灵概述 273 6.2 精灵绘制器 275 6.2.1 描边与填充绘制器 275 6.2.2 图像绘制器 279 6.2.3 精灵表绘制器 281 6.3 精灵对象的行为 284 6.3.1 将多个行为组合起来 285 6.3.2 限时触发的行为 287 6.4 精灵动画制作器 289 6.5 基于精灵的动画循环 293 6.6 总结 294 [0第0]7章 物理效果 295 7.1 重力 295 7.1.1 物体的下落 296 7.1.2 抛射体弹道运动 298 7.1.3 钟摆运动 307 7.2 时间轴扭曲 311 7.3 时间轴扭曲函数 315 7.4 时间轴扭曲运动 317 7.4.1 没有加速度的线性运动 319 7.4.2 逐渐加速的缓入运动 320 7.4.3 逐渐减速的缓出运动 322 7.4.4 缓入缓出运动 323 7.4.5 弹簧运动与弹跳运动 324 7.5 以扭曲后的帧速率播放动画 326 7.6 总结 332 [0第0]8章 碰撞检测 333 8.1 外接图形判别[0法0] 333 8.1.1 外接矩形判别[0法0] 333 8.1.2 外接圆判别[0法0] 334 8.2 碰到墙壁即被弹回的小球 336 8.3 光线投射[0法0] 337 8.4 分离轴定理(SAT)与小平移向量(MTV) 340 8.4.1 使用分割轴定理检测碰撞 340 8.4.2 根据小平移向量应对碰撞 362 8.5 总结 373 [0第0]9章 游戏开发 374 9.1 游戏引擎 374 9.1.1 游戏循环 376 9.1.2 加载图像 382 9.1.3 同时播放多个声音 384 9.1.4 键盘事件 385 9.1.5 高分榜 386 9.1.6 游戏引擎源代码 387 9.2 游戏原型 395 9.2.1 游戏原型程序的HTML代码 396 9.2.2 原型程序的游戏循环 399 9.2.3 游戏原型程序的加载画面 400 9.2.4 暂停画面 402 9.2.5 按键监听器 404 9.2.6 游戏结束及高分榜 404 9.3 弹珠台游戏 407 9.3.1 游戏循环弹珠 408 9.3.2 弹珠精灵 410 9.3.3 重力与摩擦力 411 9.3.4 弹板的移动 412 9.3.5 处理键盘事件 413 9.3.6 碰撞检测 416 9.4 总结 425 [0第0]10章 自定义控件 426 10.1 圆角矩形控件 427 10.2 进度条控件 433 10.3 滑动条控件 437 10.4 图像查看器控件 446 10.5 总结 454 [0第0]11章 移动平台开发 455 11.1 移动设备的视窗 456 11.2 媒体特征查询技术 461 11.2.1 媒体特征查询与CSS 461 11.2.2 用程序应对媒体特征的变化 462 11.3 触摸事件 464 11.3.1 TouchEvent对象 464 11.3.2 TouchList对象 465 11.3.3 Touch对象 466 11.3.4 同时支持触摸事件与鼠标事件 466 11.3.5 手指缩放 468 11.4 iOS5 469 11.4.1 应用程序图标及启动画面 469 11.4.2 利用媒体特征查询技术设置iOS5系统的应用程序图标及启动画面 470 11.4.3 以不带浏览器饰件的全屏模式运行应用程序 471 11.4.4 应用程序的状态栏 471 11.5 虚拟键盘 472 11.6 总结 485 |
| 编辑推荐 |
| Canvas是HTML5技术标准中*令人振奋的功能之一。它提供了一套强[0大0]的2D图形API,让开发者能够制作从文字处理软件到电子游戏的各类应用程序。在《HTML5Canvas核心技术:图形动画与游戏开发》中,[0畅0]销书作家David Geary(基瑞)先生以实用的范例程序直接切入这套API,全面讲解其功能,以求让读者实现出内容丰富且界面一致的网络应用程序,并将开发好的程序部署在多种设备及操作系统之上。 利用简洁而又清晰的文笔,本书展示了很多现实工作中的Canvas API用例,诸如互动式地绘制与修改图形,通过存储及恢复绘图表面来绘制临时性的图形与文本,以及实现文本输入控件等。读者将在本书中[0学0]到如何利用辅助线程制作出能够及时响应用户输入的图像滤镜程序,如何流[0畅0]地播放动画,以及如何利用视差技术画出具有3D效果的分层滚动背景图。此外,本书还详细讲解了制作电子游戏所用的精灵、物理[0学0][0知0]识及碰撞检测技术,并且实现了一个游戏引擎及一款精美的弹珠台游戏。 |
这本书的出现,简直就是为我这种HTML5 Canvas爱好者量身打造的!我一直对用浏览器实现复杂图形和交互效果充满好奇,但苦于没有系统性的学习资源。市面上虽然有不少Canvas相关的文章和教程,但零散且不成体系,很难建立起完整的知识框架。直到我看到了《HTML5 Canvas核心技术:图形.动画与游戏开发》,我才真正找到了“宝藏”。 这本书的开头就迅速切入了Canvas的核心——那个 `<canvas>` 元素本身,以及它如何作为画布,提供了一个二维绘图的API。我特别喜欢它没有一开始就讲复杂的动画和游戏,而是花了大量篇幅详细讲解了如何绘制基本图形,包括线条、矩形、圆形、弧线等等。它不仅列出了API函数,还深入剖析了每个参数的含义,以及它们如何影响最终的绘制效果。比如,在讲解线条样式时,它详细对比了 `lineCap` 和 `lineJoin` 的不同取值,并通过生动的示例图,让我直观地理解了圆角、斜接等效果的实现,这比单纯的文字描述要清晰太多。 而且,书中关于“状态管理”的讲解也让我受益匪浅。Canvas的绘图状态,比如颜色、线宽、变换矩阵等等,是可以保存和恢复的。作者用非常形象的比喻,将它比作“拍照前的设置”,在绘制复杂图形时,能够有效地避免状态混乱,提高代码的可维护性。我曾经就因为这个问题,写出来的代码乱七八糟,效率低下。这本书的“状态管理”部分,就像一盏明灯,指引我走出了那个“黑暗时代”。 更让我惊喜的是,它在图形绘制的进阶部分,讲解了路径操作,比如 `moveTo`、`lineTo`、`arcTo`,以及 `fill()` 和 `stroke()` 的区别和用法。通过组合这些基本操作,我们可以绘制出非常复杂的图形,甚至是一些矢量图形编辑软件才能做到的效果。书中的例子,从简单的图标到一些有艺术感的图案,都展示了路径操作的强大能力。这让我对Canvas的想象力瞬间打开了,感觉不仅仅是简单的绘图,而是可以创造出无限可能。 总而言之,这本书为我打下了坚实的Canvas基础。它循序渐进,逻辑清晰,每个知识点都辅以丰富的代码示例和清晰的图解,让我能够轻松理解并上手实践。对于想要深入掌握HTML5 Canvas技术的开发者来说,这本书绝对是一份不可多得的优质资源,它让我从“知道”Canvas到“理解”Canvas,再到“运用”Canvas,逐步建立起对这项技术深刻的认识。
评分我一直对动态视觉效果和互动体验充满热情,但苦于没有一个好的起点。《HTML5 Canvas核心技术:图形.动画与游戏开发》这本书,就像我探索这个领域的“导航仪”,为我指明了方向。 我最喜欢的部分是关于“动画基础”的章节。它没有一开始就讲复杂的缓动函数或者物理引擎,而是从最基本的“时间循环”概念入手,讲解了如何通过 `requestAnimationFrame` 来实现平滑的动画。作者详细解释了为什么 `requestAnimationFrame` 比 `setTimeout` 或 `setInterval` 更适合做动画,以及它如何与浏览器的刷新率同步,从而避免掉帧和卡顿。 接着,书中深入讲解了“帧的概念”,以及如何通过不断更新图形的属性来模拟运动。我特别喜欢它关于“位移”和“速度”的讲解,通过简单的数学公式,就能实现图形的直线运动。然后,它又引入了“加速度”的概念,讲解了如何通过改变速度来模拟加速和减速,这为后面实现更复杂的运动轨迹打下了基础。 更让我眼前一亮的是,书中关于“缓动函数”的讲解。它不仅仅是列出了一些现成的缓动函数,而是详细解释了它们的原理,以及如何根据自己的需求来实现自定义的缓动函数。比如,它讲解了如何实现“ease-in”、“ease-out”和“ease-in-out”等效果,并且通过图表直观地展示了不同缓动函数的运动曲线。这让我对动画的“感觉”有了更深的理解,不再是生硬的线性运动,而是更加自然、流畅的动态表现。 书中还涉及了“碰撞检测”的初步概念,虽然不是游戏开发的核心部分,但对于理解简单的互动和反馈非常重要。它介绍了如何通过检测两个图形的边界来判断是否发生碰撞,以及如何根据碰撞结果做出相应的反应。这为我后续学习更复杂的碰撞逻辑打下了基础。 这本书的动画部分,让我感觉自己不再是简单地“画图”,而是开始“创造生命”。每一个像素的移动,都充满了逻辑和美感。它让我从一个旁观者,变成了一个真正的创作者,能够将自己的想法通过代码转化为生动的视觉体验。
评分在数字艺术和交互设计领域,HTML5 Canvas扮演着越来越重要的角色。《HTML5 Canvas核心技术:图形.动画与游戏开发》这本书,不仅仅是一本技术手册,更像是一本“创意激发器”,为我提供了无限的灵感和可能性。 我特别着迷于书中关于“图像处理”的部分。它不仅仅介绍了如何加载和显示图片,还深入讲解了如何对图像进行各种操作,比如裁剪、缩放、旋转、滤镜等等。作者详细讲解了如何使用Canvas的 `getImageData` 和 `putImageData` 方法来获取和修改图像的像素数据,这让我对图像的底层操作有了更清晰的认识。 通过像素操作,书中展示了如何实现各种有趣的图像效果,例如黑白化、反色、马赛克、高斯模糊等等。这些效果的实现,让我感觉自己不仅仅是在“画画”,而是在“编辑”和“创造”图像。我曾经尝试过用一些在线的图片编辑工具,但始终觉得不够灵活,而这本书让我能够通过代码,实现更加个性化和精细化的图像处理。 另外,书中关于“渐变”和“纹理填充”的讲解也让我大开眼界。它详细介绍了如何创建线性渐变和径向渐变,并且如何将这些渐变作为图形的填充颜色。更重要的是,它还讲解了如何使用图像作为纹理来填充图形,这为创建更具视觉冲击力的设计提供了可能。 我尤其喜欢书中关于“路径剪裁”的拓展应用。它不仅仅局限于简单的图形裁剪,而是将其与图像处理结合,实现了一些非常巧妙的视觉效果,比如将图片裁剪成各种不规则的形状,或者在图片上创建镂空效果。这让我明白,Canvas的强大之处在于其组合能力,可以将各种基础功能进行巧妙的组合,创造出令人惊叹的效果。 这本书的出现,让我对HTML5 Canvas的认知提升到了一个新的高度。它不仅仅是一个绘图工具,更是一个强大的图像处理和创意平台。它让我能够将想法转化为现实,创造出更加丰富多彩的数字艺术作品。我强烈推荐这本书给所有对数字艺术、交互设计以及网页视觉效果感兴趣的朋友们。
评分我一直认为,要真正掌握一门技术,必须从其核心原理入手。《HTML5 Canvas核心技术:图形.动画与游戏开发》恰恰做到了这一点。这本书没有急于求成地抛出一些炫酷的效果,而是从最基础的Canvas API开始,层层递进地揭示了其内在的逻辑和运行机制。 我特别欣赏作者对于“像素”这个概念的细致阐述。Canvas的本质就是操作像素网格,理解像素的含义,以及如何通过API来控制它们的颜色和位置,是进行任何高级操作的基础。书中关于颜色空间的讲解,例如RGB、RGBA、HSLA,以及它们的相互转换,让我对颜色的表示和操作有了更深入的理解。它还详细讲解了透明度的概念,以及如何通过alpha通道来控制图形的半透明效果,这对于制作具有层次感的视觉效果至关重要。 其次,书中对于“坐标系”和“变换”的讲解也让我印象深刻。Canvas默认的坐标系是从左上角开始的,这和其他图形API可能有所不同。理解这一点,对于正确绘制图形至关重要。而书中关于平移(translate)、旋转(rotate)和缩放(scale)的讲解,则让我领略到了Canvas强大的变换能力。通过组合这些变换,我们可以轻松地在画布上实现图形的移动、旋转和缩放,这为后续的动画和游戏开发打下了坚实的基础。 我尤其喜欢书中关于“剪切区域”的讲解。它允许我们定义一个区域,只在其中进行绘制,超出该区域的部分将被裁剪掉。这在绘制复杂场景,或者需要将图形限制在特定范围内时非常有用。书中通过多个例子,展示了如何利用剪切区域来实现一些精致的视觉效果,比如圆形裁剪、多边形裁剪等。 这本书的写作风格非常严谨,但又不失趣味性。它不是枯燥的技术文档,而是更像一位经验丰富的开发者,在手把手地教导你如何使用Canvas。每一个概念的引入,都伴随着清晰的代码示例,并且会解释代码背后的原理。这种深入浅出的讲解方式,让我这个初学者也能很快地跟上节奏,并且产生强烈的学习动力。 总而言之,这本书的价值在于其深入的原理分析和扎实的技术讲解。它让我不仅仅是学会了如何调用Canvas的API,更重要的是理解了Canvas的工作原理,从而能够更加灵活和高效地进行开发。它为我打开了通往更复杂Canvas应用的大门,我迫不及待地想继续探索它的动画和游戏开发部分。
评分游戏开发一直是我的梦想,而HTML5 Canvas无疑是实现这一梦想的绝佳平台。在寻找相关学习资料的过程中,《HTML5 Canvas核心技术:图形.动画与游戏开发》这本书脱颖而出,它以其系统性和深度,为我打开了游戏开发的大门。 这本书在游戏开发部分的开篇,就聚焦于“游戏循环”这个核心概念。作者详细解释了游戏循环的三个主要阶段:输入处理、逻辑更新和渲染。他强调了保持游戏循环高效运行的重要性,以及如何通过优化代码来提升游戏的性能。我特别欣赏他对“帧率”和“时间步长”的深入分析,这让我明白了为什么在一些游戏中,即使玩家的设备性能不高,也能获得相对流畅的体验。 接着,书中就进入了“精灵图”和“动画序列”的讲解。它详细介绍了如何加载和使用精灵图,以及如何通过切换不同的帧来制作角色动画。作者还讲解了如何利用Canvas的 `drawImage` 方法,配合 `sx`, `sy`, `sWidth`, `sHeight` 等参数,精确地截取精灵图的各个部分,并将其绘制到画布上。这种精细的控制能力,让我能够创造出逼真的角色动作。 更令我兴奋的是,书中关于“物理引擎”的初步介绍。虽然篇幅可能不是最长的,但它所讲解的概念,如重力、速度、加速度和摩擦力,对于理解游戏中的物体运动至关重要。它展示了如何将这些物理概念应用到Canvas上,让游戏中的角色和物体能够更加真实地进行互动。 此外,这本书还涵盖了“用户输入处理”,包括键盘事件和鼠标事件的处理。它详细讲解了如何捕捉玩家的操作,并将这些操作转化为游戏中的指令,比如角色的移动、跳跃或者攻击。这让游戏变得更加生动和有趣,因为玩家可以真正地“参与”到游戏中来。 总而言之,这本书在游戏开发方面,不仅仅是教我如何“画”,更是教我如何“设计”和“构建”。它让我理解了游戏背后的逻辑和原理,让我能够从零开始,创造出属于自己的游戏世界。这本书的指导,让我对未来的游戏开发之旅充满了信心和期待。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有