首页>参考读物>计算机科学与技术>数码/设计

交互式程序设计(原书第2版)
作者 : (美)Joshua Noble 著
译者 : 毛顺兵 张婷婷 等译
出版日期 : 2014-07-17
ISBN : 978-7-111-46480-8
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 656
开本 : 16
原书名 : 交互式程序设计(原书第2版)
原出版社: OReilly Media, Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

no

图书前言

本书分三部分。第一部分(第1~6章)介绍贯穿本书的3个项目,第二部分(第7~10章)介绍交互设计和应用程序创作中最普遍的主题,第三部分(第11~17章)深入讨论相关进阶主题。当中还有对相关人士的采访,包括程序员、艺术家、设计师以及工具的开发者。本书涉猎如此广泛,无法对每一个主题进行深入探讨,有兴趣进一步研究的读者不妨参考书中所列出的书目、网站、设计师和艺术家。
本书包括及未包括的内容
当下交互设计领域迅猛发展,观念日新月异,笔者对此的兴奋之情难以言表。受时间和篇幅所限,无法囊括所有的方面,内容上不得不有所取舍。
本书包括的内容
本书包括Processing、Arduino和openFrameworks。考虑到读者中会有编程新手,书中介绍了一些编程基本知识,包括用于Arduino和openFrameworks的C和C++编程知识,并涵盖Processing的编程语言。其中提及不少openFrameworks和Processing的库,但这样的库实在太多,不能一一列举。所提及的库和扩展组件部分来自官方发布,另外一些则是专为本书开发的,或是由热心程序员另外提供的。
此外还有电子和计算机硬件的一些基础知识,以及Arduino开发工具和器件的介绍。Arduino和Processing的集成开发环境(Integrated Development Environment,IDE)是必要内容,同样重要的还有openFrameworks的两个IDE——Code::Blocks和Xcode。我们还会深入探讨Arduino Uno板和Arduino Mini板,同时简单介绍另外两种板。Arduino专用的扩展板(shield)也是重点关注的部分。
本书未包括内容
本书将介绍如何搭建某些电路,但不可能涵盖电子和硬件方面的所有基础知识,更不可能详述电子学理论。第17章列出了一些很好的教程和参考资料,供有需要的读者进一步学习。我们会介绍Processing,它是Java编程语言的一个子集;但受篇幅所限,同时也为了避免内容过于发散,我们不会介绍Java。C++也未能提及太多,如模板、内嵌函数、运算符重载和抽象类等内容就没有涉及,有劳读者通过第17章列出的参考资料另外了解。
Arduino兼容的电路板数不胜数,本书简单介绍Mega、Nano和Fio等有限几种。事实上还有很多非Arduino团队开发的电路板,我们就没法一一提及了。不少器件和工具很值得深入讨论,但受主题和篇幅所限,只能忍痛割舍。
遗憾未能提及的还有人工智能、数据可视化和算法音乐等。尽管这些内容让艺术家和设计师着迷,但本书关注的是交互设计的理论和技术,以及硬件和编程的基础知识。书末列出的参考资料可满足读者求知的欲望。
本书的约定
本书使用了以下排版约定:
斜体(Italic)
用于新术语、URL、电子邮件地址、文件名与文件扩展名。
等宽字体(Constant width)
用于表明程序清单,以及在段落中引用的程序中的元素,如变量、函数名、数据库、数据类型、环境变量、语句、关键字等。
等宽粗体(Constant width bold)
用于表明命令,或者需要读者逐字输入的文本内容。
等宽斜体(Constant width italic)
用于表示需要使用用户提供的值或者由上下文决定的值来替代的文本内容。
注意:这段内容表示一个技巧或建议。
警告:这段内容表示危险操作或重要注意事项。
示例代码的使用
本书提供代码的目的是帮你快速完成工作。一般情况下,你可以在你的程序或文档中使用本书中的代码,而不必取得我们的许可,除非你想复制书中很大一部分代码。例如,你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O扲eilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。
如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“Programming Interactivity, Second Edition by Joshua Noble (O扲eilly). Copyright 2012 Joshua Noble, 978-1-449-31144-5”。
如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们:permissions@oreilly.com。
联系我们
有关本书的任何建议和疑问,可以通过下列方式与我们取得联系:
美国:
O扲eilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们会在本书的网页中列出勘误表、示例和其他信息。可以通过http://shop.oreil.com/product/0636920021735.do访问该页面。
要评论或询问本书的技术问题,请发送电子邮件到:
bookquestions@oreilly.com
想了解关于O扲eilly图书、课程、会议和新闻的更多信息,请访问以下网站:
http://www.oreilly.com.cn
http://www.oreilly.com
致谢
首先要感谢各位出色的工程师、艺术家、程序员和梦想家,是他们创造了这些精彩的交互平台。必须感谢Massimo Banzi、Tom Igoe、David Cuartielles、Gianluca Martino、David A. Mellis、Ben Fry、Casey Reas、Zach Lieberman、Theo Watson、Arturo Castro和Chris O扴hea, 他们构建了书中介绍的技术框架。当然还有很多要感谢的人,篇幅所限,未能全部列出,请见谅。有赖全体平台和系统的创造者,让我们得以有所触发和创作,让设计、科技和艺术之间发生丰富又迷人的对话。此书也是笔者给大家的一个小小的回馈,献给帮助过我、启发过我的人们,献给广大投身于此领域的程序员、艺术家和设计师,让更多的人参与到这样的话题中来。还要感谢各位受访者,谢谢他们抽出宝贵的时间回答我的问题,让书中内容更丰富,让交互设计和艺术界更精彩。感谢为本书写代码的各位,感谢在论坛上为新手解答问题的各位:谢谢你们为构建讨论社区所作出的努力。
本书得以成册,有赖于编辑团队的工作。技术编辑Michael Margolis、Adam Parrish、Matt Obert、Jeff Crouse和Jeremy Rotzstain实在太神奇了。他们的专业意见以及对我工作的清晰见解不仅帮助我写书,更是经常启发我,为我带来解决问题的新方法、新工具和技术,让我的思维保持活跃,进一步扩展我的视野。书中字字句句都凝聚了他们的心血,任何话语都不足以表达我对他们的感激之情。还要感谢LiquidWare的Justin Hunyh和Mike Gionfriddo以及Sparkfun的Nathan Seidle。感谢编辑Shawn Wallace、Robyn Thomas和Kim Wimpsett耐心细致的工作,要知道我的语法有多糟糕,本书初稿有多乱。最后要感谢Steve Weiss,从本书酝酿到最后完成,他一直聆听我的观点,并给我指点。
感谢在纽约、波特兰、阿姆斯特丹、日内瓦、伦敦、苏黎世、波士顿、巴黎、哥本哈根和图卢兹的每一位朋友,感谢他们的支持和见解,感谢他们提供网络资源和鼓励。当然还有我的家人,特别是我的母亲,谢谢母亲的支持和幽默。

上架指导

计算机\程序设计

封底文字

交互式程序设计(原书第2版)

准备好在你的艺术作品、设计或原型中创造丰富的交互式体验了吗?本书就是理想的起点。这本易于上手的指南将带你探索若干交互式艺术和设计的主题,包括三维图形、声音、物理交互、计算机图像和定位,并从零基础学习实现它们所需的基本编程知识和电子学概念。

本书全面介绍3种专为艺术家和设计师开发的免费工具:Processing编程语言、Arduino微控制器和openFrameworks工具集。此外,书中还给出许多可运行的例程,连同相关背景和技术信息,供你在设计、编程和项目中参考。

•跟领先的艺术家和设计师学习交互设计的最新技术。

•让用户通过按钮、转盘和其他物理控件输入。

•用OpenGL制作图形和动画,包括三维图像。

•使用声音来与用户交互,包括反馈、输入或其他用户控件。

•用电机、伺服和设备来提供物理反馈。

•用OpenCV将用户的手势和运动转化为有实际意义的输入。



“这是一本非常棒的书,我对硬件和I/O十分熟悉,但对Processing和图形知之甚少,本书帮我填补了二者之间的空白。”
——Nathan Seidle,
Sparkfun Electronics公司CEO

“阅读本书是任何人学习编程和电子学基础的极佳途径,初学者可以立刻开始制作非常不错的项目。
——Mark Frauenfelder,
《Make》杂志主编


Joshua Noble 交互设计师和开发者,工作中大量使用本书中介绍的几种工具,常在全美各个研讨会上分享他的知识。除本书外,他还是《Flex 4 Cookbook》一书的第一作者。

作者简介

(美)Joshua Noble 著:Joshua Noble 交互设计师和开发者,工作中大量使用本书中介绍的几种工具,常在全美各个研讨会上分享他的知识。除本书外,他还是《Flex 4 Cookbook》一书的第一作者。

译者简介

毛顺兵 张婷婷 等译:暂无简介

译者序

人类每一次技术革新都会带来艺术上的巨大变革。如今,人们的生活已经步入一个移动化、网络化、互动化的世界,在这个世界里“交互”如影随形。从20世纪到现在,艺术和科学技术之间最令人瞩目的“交互”莫过于图像技术对于艺术表现力的影响,新媒体艺术由此兴起。随着科技的不断发展,交互艺术(互动艺术)成为新媒体艺术中最为耀眼的一个分支。艺术插上技术之翼,给人新颖、神奇的感觉,触动了人们内心探索的欲望;与此同时,艺术领域的需求也在推动技术的发展与革新,Processing的出现便是一例。
  交互艺术是一门跨学科的综合性较强的艺术展现形式,它包括了艺术设计、计算机图形技术、编程语言、传媒硬件材料等各类学科,甚至还包括物理学、音乐、心理等知识。艺术背景的设计人员大多深感编程语言的晦涩,对图形图像的相关技术不明就里,在交互设计中有想法却无从施展;现在迈过这道门槛的机会来了。这是一本面向没有编程基础或相关技术背景的艺术家与设计师的交互设计工具书。作者对理论知识的综合驾驭能力很强,许多问题的讲解深入浅出、清晰透彻。认真读完本书,相信读者可以对交互设计中软硬件技术有一个系统而全面的认识。
  正如本书开篇所提及,这是一本“地图”,准确清晰地指出了通往各种可能性的方向和渠道。意欲或正在进入交互艺术领域跋涉的人,手握这样一份“地图”相当踏实和方便。从中能获知交互技术可以做什么;当需要实现某种功能和效果,业界主流的做法是什么,用什么工具;在哪里可以找到资源和帮助;在交互艺术领域优秀的艺术家和设计师是怎样考虑和实现想法的。更重要的是,所有的这些都不是遥不可及,跟着书中的说明和例子去做,去尝试,你也能探索出一条通幽曲径,添加到这份“地图”上。
  本书中文版由热爱交互设计的工程师和高校教师共同翻译,他们是:毛顺兵(第6、12、13和15章)、张婷婷(第1、2、10、16和17章及前言)、陈宇(第5和8章)、沈鑫(第7和11章)、任灿江(第9和14章)、崔丽(第3和4章)。此外,在译者们的翻译过程中都得到了其家人们的大力支持与理解,在此表示衷心感谢!最后感谢机械工业出版社华章分社的编辑们辛勤而细致的工作!
  由于译者水平有限,书中难免出现疏漏、不当之处,恳请读者批评指正。

图书目录

前言 1
第1章 交互设计导论 5
1.1 本书读者对象 5
1.2 交互领域中的编程 6
1.3 设计与交互 17
1.4 艺术与交互 18
1.5 数据交换与探索 19
1.6 工作流程 22
第2章 编程基础 24
2.1 为什么本章你会读不止一次 25
2.2 代码的本质 25
2.3 变量 26
2.4 控制语句 39
2.5 函数 43
2.6 对象和属性 48
2.7 作用域 51
2.8 小结 52
第3章 使用Processing 54
3.1 下载并安装Processing 55
3.2 Processing集成开发环境 55
3.3 Processing应用程序基础 57
3.4 Processing绘图基础 61
3.5 捕获简单用户交互行为 69
3.6 导入外部库 79
3.7 将外部数据载入Processing 80
3.8 程序的运行和调试 86
3.9 导出Processing应用程序 87
3.10 更进一步 89
3.11 小结 90
第4章 Arduino 92
4.1 Arduino预备知识 93
4.2 初探Arduino开发板 97
4.3 Arduino集成开发环境 102
4.4 Arduino应用程序基础 105
4.5 Arduino语言的特性 108
4.6 怎么将元件连接到Arduino电路板 115
4.7 Hello World 118
4.8 应用程序调试 120
4.9 导入库 124
4.10 运行你的程序 126
4.11 小结 127
第5章 编程回顾 129
5.1 面向对象编程 129
5.2 类 130
5.3 公有与私有属性 133
5.4 继承 135
5.5 Processing:类与文件 137
5.6 C++:类与文件 139
5.7 指针与引用 144
5.8 小结 153
第6章 openFrameworks 155
6.1 集成开发环境和电脑 156
6.2 快速浏览C++ 158
6.3 oF基础 162
6.4 oF应用程序 168
6.5 第一个应用程序“Hello, World” 170
6.6 绘制二维图形 172
6.7 显示视频和图像 178
6.8 编译oF程序 182
6.9 调试oF应用程序 184
6.10 导入库 189
6.11 小结 192
第7章 物理输入 194
7.1 与物理控件交互 194
7.2 动力学随想 195
7.3 本章涉及的元件 196
7.4 操纵控件 196
7.5 旋钮 197
7.6 使用灯光 200
7.7 检测触摸和振动 201
7.8 检测相对距离 203
7.9 感测运动 209
7.10 读取距离 211
7.11 理解二进制数 214
7.12 同其他应用程序进行通信 218
7.13 从Arduino发送消息 221
7.14 检测力和倾斜 225
7.15 I2C介绍 230
7.16 更进一步 235
7.17 小结 236
第8章 图形编程 238
8.1 屏幕与图形 238
8.2 多看、多读、多思 241
8.3 数学、图形及坐标系统 242
8.4 绘制策略 245
8.5 矩阵变换 253
8.6 创建运动 257
8.7 使用向量 266
8.8 使用图形控件 275
8.9 导入与导出图形 278
8.10 更进一步 283
8.11 小结 284
第9章 位图和像素 285
9.1 把像素作为数据 285
9.2 用像素和位图作为输入 288
9.3 用位图提供反馈信息 289
9.4 循环访问像素 290
9.5 位图操作 294
9.6 在oF中分析位图 299
9.7 使用边检测 308
9.8 使用像素数据 314
9.9 使用纹理 317
9.10 保存位图 324
9.11 更进一步 325
9.12 小结 326
第10章 声音与音频 328
10.1 声音作为反馈 329
10.2 声音和交互 331
10.3 计算机中声音是怎样的 333
10.4 Processing中的音频 335
10.5 openFrameworks里的声音 346
10.6 openFrameworks和FMOD Ex库 348
10.7 Maximilian 355
10.8 用Arduino对声音进行物理操作 365
10.9 PWM快速入门 366
10.10 用声音创造交互 368
10.11 更多参考资源 368
10.12 小结 369
第11章 Arduino和反馈 371
11.1 使用电机 372
11.2 智能反馈 378
11.3 使用伺服 381
11.4 使用家用电流 386
11.5 使用电器 388
11.6 LilyPad电路板介绍 394
11.7 使用振动 396
11.8 使用LED矩阵 399
11.9 使用串行外设接口协议 402
11.10 串行LED矩阵 403
11.11 使用液晶显示器 405
11.12 使用螺线管产生运动 408
11.13 更进一步 411
11.14 小结 412
第12章 协议和通信 413
12.1 网络通信 414
12.2 使用XML 415
12.3 理解网络和Internet 418
12.4 Processing中的网络通信 421
12.5 理解网络协议 431
12.6 使用ofxNetwork扩展库 432
12.7 用Arduino建立网络 447
12.8 Arduino与无线网络 453
12.9 用蓝牙通信 456
12.10 用MIDI通信 460
12.11 小结 464
第13章 图形与OpenGL 466
13.1 3D和交互有什么关系 466
13.2 理解3D 467
13.3 什么是OpenGL 468
13.4 在Processing中使用3D 469
13.5 在Processing中自定义形状 477
13.6 在Processing中使用坐标与模型变换 480
13.7 openFrameworks处理3D 482
13.8 OpenGL的光照 486
13.9 OpenGL的颜色混合模式 488
13.10 在oF中建立3D模型 492
13.11 在Processing中使用纹理 495
13.12 OpenGL的着色器 496
13.13 使用ofShader 500
13.14 在Processing中使用着色器 506
13.15 更进一步 508
13.16 小结 508
第14章 动作和姿势 510
14.1 计算机视觉 511
14.2 OpenCV 513
14.3 跟踪和使用blob 513
14.4 用oF检测特征 519
14.5 在Processing中使用OpenCV 523
14.6 Processing中的特征跟踪 528
14.7 结合物理做blob跟踪 533
14.8 OpenCV的进一步探索 539
14.9 手势识别 540
14.10 用oF捕获iOS手势 548
14.11 oF和触控技术 550
14.12 更进一步 552
14.13 使用微软的Kinect 552
14.14 小结 553
第15章 运动与定位 555
15.1 使用运动作为交互 555
15.2 使用软件模拟串行端口 557
15.3 理解并使用GPS 559
15.4 数据存储 571
15.5 将GPS数据记录到Arduino 574
15.6 发送GPS数据 577
15.7 获得移动设备的位置 580
15.8 更进一步 581
15.9 小结 582
第16章 空间与环境 583
16.1 建筑和空间的利用 583
16.2 感知环境数据 584
16.3 将XBee和Arduino结合使用 585
16.4 二维定位 595
16.5 X10协议 601
16.6 设置RFID传感器 604
16.7 读取温度和湿度 610
16.8 定位对象 615
16.9 更进一步 621
16.10 小结 622
第17章 更多参考资源 623
17.1 更多工具和平台 623
17.2 参考书籍 634
17.3 全书总结 638

教学资源推荐
作者: (英)Slater, M. 等
作者: 朱洁
作者: 吴黎兵,彭红梅,赵莉
作者: 姚敏 等编著
参考读物推荐
作者: 周明涛编著
作者: [美] 罗谢尔·肯(Rochelle King) 伊丽莎白 F.邱吉尔(Elizabeth F.Churchill)凯特琳·谭(Caitlin Tan) 著