SVG精髓pdf下载pdf下载

SVG精髓百度网盘pdf下载

作者:
简介:本篇主要提供SVG精髓pdf下载
出版社:人民邮电出版社
出版时间:2015-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

  《SVG精髓(第2版)》详尽介绍了可缩放矢量图形(SVG)技术。SVG是一种标记语言,为大多数矢量绘图程序和交互式Web图形工具所使用。本书将带你详细了解SVG的功能,首先学习简单的SVG应用,如绘制线条,然后逐步探索复杂的特性,比如滤镜、变换、渐变和图案等。
  本书第2版扩展了动画、交互式图形以及SVG编程等内容。交互式的在线示例让你很容易在Web浏览器中实验SVG的特性。本书还为经验丰富的设计师准备了6个附录,解释了XML标记和CSS样式等基本概念,因此即使你没有网页设计的经验,也可以开始学习SVG。
  通过阅读本书,你将能够:
  为网页创建高质量、高分辨率的图形;
  创建通过搜索引擎或辅助技术易于访问的图表和装饰性标题;
  用SVG蒙版、滤镜以及变换给图形、文本和照片添加艺术效果;
  用SVG标记动画绘制图形,使用CSS和JavaScript添加交互;
  根据现有的矢量数据或XML数据使用编程语言或XSLT创建SVG。

内容简介

  《SVG精髓(第2版)》通过实例透彻讲解了SVG(可缩放矢量图形)这种标记语言的规范及应用。作者从简单的SVG应用开始,带领读者逐步探索了SVG的复杂功能,包括滤镜、变换、渐变和模式。从应用层面看,本书涵盖了动画、交互图形和动态SVG编程等技术,不仅能为有经验的开发人员提供重要参考,同时通过讲解基本的XML和CSS技术,为没有Web开发经验的读者提供了入门捷径。

作者简介

  J. David Eisenberg,是一名程序员和教师。他开发了CSS、JavaScript、CGI、XML和Perl等多门编程课程,并在加州圣何塞常青谷学院教授计算机信息技术课程。他还著有études for Erlang、Let's Read Hiragana以及本书第1版。

  Amelia Bellamy-Royds,是一位专门从事科学和技术交流的自由撰稿人。她通过参与Web Platform Docs、Stack Exchange和Codepen等在线社区,帮助推动Web标准和设计。

内页插图

精彩书评

  “早在2002年,我就通过本书的第1版初次了解了SVG,它对我帮助很大。真的很高兴,如今本书针对现代浏览器以及新时代的开发者和设计者进行了更新升级。”
  ——Doug Schepers,万维网联盟SVG工作组成员

目录

第1 章 入门指南 1
1.1 图形系统 1
1.1.1 栅格图形 1
1.1.2 矢量图形 2
1.1.3 栅格图形的用途 2
1.1.4 矢量图形的用途 2
1.2 可缩放 3
1.3 SVG 的作用 5
1.4 创建一个SVG 图像 5
1.4.1 文档结构 5
1.4.2 基本形状 6
1.4.3 指定样式属性 6
1.4.4 图形对象分组 7
1.4.5 变换坐标系统 8
1.4.6 其他基本图形 8
1.4.7 路径 9
1.4.8 文本 10
第2 章 在网页中使用SVG 12
2.1 将SVG 作为图像 12
2.1.1 在 元素内包含SVG 13
2.1.2 在CSS 中包含SVG 14
2.2 将SVG 作为应用程序 15
2.3 混合文档中的SVG 标记 16
2.3.1 SVG 中的foreign object 16
2.3.2 在XHTML 或者HTML5 中内联SVG 18
2.3.3 其他XML 应用程序中的SVG 20
第3 章 坐标系统 21
3.1 视口 21
3.2 使用默认用户坐标 22
3.3 为视口指定用户坐标 24
3.4 保留宽高比 25
3.4.1 为preserveAspectRatio 指定对齐方式 26
3.4.2 使用meet 说明符 27
3.4.3 使用slice 说明符 28
3.4.4 使用none 说明符 29
3.5 嵌套坐标系统 29
第4 章 基本形状 32
4.1 线段 32
4.2 笔画特性 33
4.2.1 stroke-width 33
4.2.2 笔画颜色 34
4.2.3 stroke-opacity 35
4.2.4 stroke-dasharray 属性 36
4.3 矩形 37
4.4 圆和椭圆 39
4.5 多边形 40
4.6 折线 42
4.7 线帽和线连接 43
4.8 基本形状总结 44
4.8.1 形状元素 45
4.8.2 指定颜色 45
4.8.3 笔画和填充特性 46
第5 章 文档结构 47
5.1 结构和表现 47
5.2 在SVG 中使用样式 48
5.2.1 内联样式 48
5.2.2 内部样式表 48
5.2.3 外部样式表 49
5.2.4 表现属性 50
5.3 分组和引用对象 51
5.3.1 
元素 51
5.3.2 元素 52
5.3.3 元素 53
5.3.4 元素 55
5.3.5  元素 56
第6 章 坐标系统变换 58
6.1 translate 变换 58
6.2 scale 变换 60
6.3 变换序列 63
6.4 技巧:笛卡儿坐标系统转换 65
6.5 rotate 变换 67
6.6 技巧:围绕中心点缩放 69
6.7 skewX 和skewY 变换 69
6.8 变换总结 70
6.9 CSS 变换和SVG 71
第7 章 路径 72
7.1 moveto、lineto 和closepath 72
7.2 相对moveto 和lineto 75
7.3 路径的快捷方式 75
7.3.1 水平和垂直lineto 命令 75
7.3.2 路径快捷方式表示法 76
7.4 椭圆弧 76
7.5 从其他弧线格式转换 79
7.6 贝塞尔曲线 79
7.6.1 二次贝塞尔曲线 80
7.6.2 三次贝塞尔曲线 82
7.7 路径总结 84
7.8 路径和填充 84
7.9 元素 85
7.10 标记记录 88
第8 章 图案和渐变 90
8.1 图案 90
8.1.1 patternUnits 91
8.1.2 patternContentUnits 92
8.1.3 图案嵌套 94
8.2 渐变 95
8.2.1 linearGradient 元素 95
8.2.2 radialGradient 元素 99
8.2.3 渐变总结 102
8.3 变换图案和渐变 103
第9 章 文本 105
9.1 文本的相关术语 105
9.2 元素的基本属性 106
9.3 文本对齐 108
9.4 元素 109
9.5 设置文本长度 111
9.6 纵向文本 112
9.7 国际化和文本 113
9.7.1 Unicode 和双向语言 113
9.7.2 元素 114
9.7.3 使用自定义字体 115
9.8 文本路径 117
9.9 空白和文本 119
9.10 案例学习:为图形添加文本 120
第10 章 裁剪和蒙版 122
10.1 裁剪路径 122
10.2 蒙版 125
10.3 案例学习:为图形应用蒙版 129
第11 章 滤镜 131
11.1 滤镜的工作原理 131
11.2 创建投影效果 132
11.2.1 建立滤镜的边界 132
11.2.2 投影133
11.2.3 存储、链接以及合并滤镜结果 134
11.3 创建发光式投影 135
11.3.1 元素 135
11.3.2 详解 136
11.4 滤镜 138
11.5 滤镜 139
11.6 滤镜 143
11.7 滤镜 146
11.8 和滤镜 147
11.9 光照效果 148
11.9.1 漫反射照明 149
11.9.2 镜面反射照明 150
11.10 访问背景 152
11.11 元素 153
11.12 元素 154
11.13 元素 156
11.14 元素 158
11.15 滤镜总结 159
第12 章 SVG 动画 161
12.1 动画基础 162
12.2 动画时间详解164
12.3 同步动画 164
12.4 重复动作 165
12.5 对复杂的属性应用动画 166
12.6 指定多个值 167
12.7 多级动画时间 168
12.8 元素 169
12.9 元素 169
12.10 元素 171
12.11 为运动指定关键点和时间 173
12.12 使用CSS 处理SVG 动画 174
12.12.1 动画属性 174
12.12.2 设置动画关键帧 175
12.12.3 CSS 中的动画运动 176
第13 章 添加交互 177
13.1 在SVG 中使用链接 177
13.2 控制CSS 动画 179
13.3 用户触发的SMIL 动画 180
13.4 使用脚本控制SVG 181
13.4.1 事件概览 183
13.4.2 监听和响应事件 184
13.4.3 修改多个对象的属性 185
13.4.4 拖拽对象 188
13.4.5 与HTML 页面交互 191
13.4.6 创建新元素 195
第14 章 使用SVG DOM 198
14.1 确定元素的属性值 198
14.2 SVG 接口方法 203
14.3 使用ECMAScript/JavaScript 创建SVG 207
14.4 使用脚本控制动画 210
14.5 使用JavaScript 库 214
14.6 Snap 中的事件处理 219
14.6.1 点击对象 220
14.6.2 拖拽对象 220
第15 章 生成SVG 222
15.1 将自定义数据转换为SVG 223
15.2 使用XSLT 将XML 数据转换为SVG 226
15.2.1 定义任务 226
15.2.2 XSLT 的工作方式 228
15.2.3 编写XSL 样式表 230
附录A SVG 中需要的XML 知识 238
附录B 样式表介绍 249
附录C 编程概念 255
附录D 矩阵代数 263
附录E 创建字体 270
附录

精彩书摘

  首先需要注意的是 rect 元素不再是一个空元素,它里面包含了动画元素。
  animate 元素指定了下列信息。
  attributeNane,动画中应该持续改变的值;在这里就是width。
  attribukType。width属性是一个XML属性。另一个常用的attributeType值是CSS,表示我们想要改变的属性是一个CSS属性。如果忽略这一属性,它的默认值是auto,它首先会搜索CSS属性,然后才是XML属性。
  属性的起始(from)和结束(to)值。在这个例子中,起始值是200,结束值是20。from值是可选的;如果不指定,则会使用父元素的值。此外,还有一个by属性,可以代替to,它是一个从from值开始的偏移量;动画结束时属性的值为结束值。
  动画的开始时间和持续时间。在这个例子中,时间以秒为单位,通过在数字后面使用s指定。定义时间的其他方式会在12.2节中描述。
  动画结束时做什么。在这个例子中,持续5秒之后,属性会“冻结”(freeze)为to值。也就是SMIL fill属性,它会告诉动画引擎如何填补剩下的时间。不要把它跟SVG的fill属性混淆了,该属性用于告诉SVG如何描绘对象。如果我们移除这一行,会使用默认值(remove),5秒的动画完成之后width属性会返回它的原始值200。
  图12—1和图12—2展示了动画的开始和结束阶段。它们并不能很好地展示实际效果,因此我们强烈建议你在浏览器中试试。
  ……

前言/序言

  本书将向你介绍“可缩放矢量图形”(Scalable Vector Graphics)技术,即 SVG。SVG 是万维网联盟(W3C)的一项推荐标准,它使用 XML 来描述由直线、曲线、文本等组成的图形。这段干巴巴的定义并不能体现出 SVG 的作用和它的强大之处。
  你可以将 SVG 图形加到 XSL-FO(Extensible Stylesheet Language Formatting Objects)1 文档中,然后将文档转换为 Adobe PDF 格式来获得更高的印刷质量。地图和气象领域的工作者可以使用 SVG 来创建高精度、高质量、可移植的图形。Web 开发者将 SVG 嵌入网页来创建高分辨率的响应式图形,且可以使文件尺寸很小。本书中的所有图表最初都是由 SVG 创建的。在学习和使用 SVG 时,你一定能想到这项新技术的一些新的、有趣的使用场景。
  1一种用于文档格式的 XML 标记语言,可参见 http://zh.wikipedia.org/wiki/XSL-FO。——译者
  本书读者
  如果你想做以下事情,就应该读一读这本书:
  在文本编辑器或者 XML 编辑器中创建 SVG 文件
  从已有的矢量数据创建 SVG 文件
  将其他 XML 数据转换为 SVG
  使用 JavaScript 操作 SVG 文档对象树
  选错书的读者
  如果你只是想查看 SVG 文件,只需要安装一个阅读器或者 Web 插件,然后下载 SVG 文件查看就可以了。这种情况下你并不需要知道背后的原理,除非你想满足自己强烈的好奇心。
  如果你想使用带有 SVG 导出功能的图像处理软件来创建 SVG 文件,那么只需要阅读相关软件的文档来学习如何使用软件的功能就可以了。
  如果你打算继续阅读……
  如果你确实适合阅读这本书,那么你应该了解,本书的大部分读者都是高级用户,他们很可能有技术背景,而不是图形设计背景。所以我们不打算在前面讲很多非常基础的东西,但我们希望没有 XML 或者程序设计背景的人也能阅读本书,因此也准备了一些介绍性的章节,并将它们放到本书最后的附录中。如果你没有使用过 XML 或者样式表(这可能包括一些技术人员),也没有编写过程序,可能需要先翻到附录部分。稍后,我们会概述各章和附录的主要内容。
  如果你是技术工作者,也需要知道,本书并不能将你变成一位艺术家,就像一本讲字处理算法的书并不能让你把文章写得更好一样。本书将展示 SVG 的很多技术细节,而如果要成为艺术家,你还需要学习观察。除了本书之外,你还应该读读 Betty Edwards 博士的 The New Drawing on the Right Side of the Brain 2。
  2该书中文版《五天学会绘画》已由北方文艺出版社出版。http://book.douban.com/subject/5263615/。——译者注
  本书只会给出 SVG 的一些基本信息,如果你想了解所有信息,请参考万维网联盟的 SVG 规范(http://www.w3.org/Graphics/SVG/Overview.htm8)。
  关于示例
  本书中的所有示例,除了涉及 HTML 页面的之外,全部在运行在 GNU/Linux 系统上的 Batik SVG viewer 软件中测试通过。Batik SVG viewer 是由 Apache 软件基金会下的 Batik 项目开发的一款软件。这款软件使用 Java 开发,跨平台,并遵循 Apache 软件协议开源,可以从http://xmlgraphics.apache.org/batik 下载。
  书中的所有例子(包括第 2、13 和 14 章中涉及 JavaScript 和 HTML 的例子)通过在 Firefox 和 Chrome 浏览器中加载的方式进行了测试。对 SVG 高级特性的支持程度取决于浏览器。
  你在看本书中的示例的时候,会发现它们完全没有任何艺术价值。这是有原因的。首先,每个示例都是为了展示 SVG 的一个方面,那么它就应该只展示这一个方面,而不应该有其他的视觉干扰。其次,本书作者 David 在看其他书中那些漂亮得不可思议的图形时感到很沮丧,他心想:“我永远也画不出这么漂亮的图。”为了不让你产生同样的沮丧情绪,我们有意简化了这些示例。当你看到它们的时候,你的第一反应会是:“我可以用 SVG 画出比这漂亮得多的东西!”你当然可以,然后你就会动手去画。