交互式程序设计(第二版)
Joshua Noble
毛顺兵, 张婷婷 等译
出版时间:2014年06月
页数:683
“这是一本非常棒的书,我对硬件和I/O十分熟悉,但对Processing和图形知之甚少,本书帮我填补了这些空白点。”
——Nathan Seidle,Sparkfun Electronics公司CEO
“阅读本书是学习编程和电子学基础的极佳途径,适合任何背景的设计师,初学者可以立刻开始制作非常酷炫的项目。”
——Mark Frauenfelder,《Make》杂志主编

你能否在艺术作品、设计或原型中创造丰富的交互式体验?本书就是理想的起点。本书深入浅出、易于上手,带你探索新媒体艺术、交互艺术、互动艺术方面的设计问题,包括三维图形、声音、物理交互、计算机视觉和定位等,并从零基础学习实现交互功能所需的基本编程知识和电子学概念。
本书主要介绍三种专为艺术家和设计师开发的免费工具:Processing编程语言、Arduino微控制器和openFrameworks工具集。此外,书中还给出许多可运行的例程,连同相关背景和技术信息,供你在设计、编程和项目中参考。

· 跟领先的艺术家和设计师学习交互设计的最新技术。
· 让用户通过按钮、转盘和其他物理控件输入。
· 使用OpenGL制作图形和动画,包括三维图像。
· 通过提供反馈、输入或其他用户控件,使用声音与用户交互。
· 使用电机、伺服和设备来提供物理反馈。
· 用OpenCV将用户的手势和运动转化为有实际意义的输入。

Joshua Noble 交互设计师和开发者,工作中大量使用本书中介绍的几种工具,常在全美各个研讨会上分享他的知识。除本书外,他还是《Flex 4 Cookbook》一书的第一作者。
  1. 前言
  2. 第1章 交互设计导论
  3. 1.1 本书读者对象
  4. 1.2 交互领域中的编程
  5. 1.3 设计与交互
  6. 1.4 艺术与交互
  7. 1.5 数据交换与探索
  8. 1.6 工作流程
  9. 第2章 编程基础
  10. 2.1 为什么本章你会读不止一次
  11. 2.2 代码的本质
  12. 2.3 变量
  13. 2.4 控制语句
  14. 2.5 函数
  15. 2.6 对象和属性
  16. 2.7 作用域
  17. 2.8 小结
  18. 第3章 使用Processing
  19. 3.1 下载并安装Processing
  20. 3.2 Processing集成开发环境
  21. 3.3 Processing应用程序基础
  22. 3.4 Processing绘图基础
  23. 3.5 捕获简单用户交互行为
  24. 3.6 导入外部库
  25. 3.7 将外部数据载入Processing
  26. 3.8 程序的运行和调试
  27. 3.9 导出Processing应用程序
  28. 3.10 更进一步
  29. 3.11 小结
  30. 第4章 Arduino
  31. 4.1 Arduino预备知识
  32. 4.2 初探Arduino开发板
  33. 4.3 Arduino集成开发环境
  34. 4.4 Arduino应用程序基础
  35. 4.5 Arduino语言的特性
  36. 4.6 怎么将元件连接到Arduino电路板
  37. 4.7 Hello World
  38. 4.8 应用程序调试
  39. 4.9 导入库
  40. 4.10 运行你的程序
  41. 4.11 小结
  42. 第5章 编程回顾
  43. 5.1 面向对象编程
  44. 5.2 类
  45. 5.3 公有与私有属性
  46. 5.4 继承
  47. 5.5 Processing:类与文件
  48. 5.6 C++:类与文件
  49. 5.7 指针与引用
  50. 5.8 小结
  51. 第6章 openFrameworks
  52. 6.1 集成开发环境和电脑
  53. 6.2 快速浏览C++
  54. 6.3 oF基础
  55. 6.4 oF应用程序
  56. 6.5 第一个应用程序“Hello, World”
  57. 6.6 绘制二维图形
  58. 6.7 显示视频和图像
  59. 6.8 编译oF程序
  60. 6.9 调试oF应用程序
  61. 6.10 导入库
  62. 6.11 小结
  63. 第7章 物理输入
  64. 7.1 与物理控件交互
  65. 7.2 动力学随想
  66. 7.3 本章涉及的元件
  67. 7.4 操纵控件
  68. 7.5 旋钮
  69. 7.6 使用灯光
  70. 7.7 检测触摸和振动
  71. 7.8 检测相对距离
  72. 7.9 感测运动
  73. 7.10 读取距离
  74. 7.11 理解二进制数
  75. 7.12 同其他应用程序进行通信
  76. 7.13 从Arduino发送消息
  77. 7.14 检测力和倾斜
  78. 7.15 I2C介绍
  79. 7.16 更进一步
  80. 7.17 小结
  81. 第8章 图形编程
  82. 8.1 屏幕与图形
  83. 8.2 多看、多读、多思
  84. 8.3 数学、图形及坐标系统
  85. 8.4 绘制策略
  86. 8.5 矩阵变换
  87. 8.6 创建运动
  88. 8.7 使用向量
  89. 8.8 使用图形控件
  90. 8.9 导入与导出图形
  91. 8.10 更进一步
  92. 8.11 小结
  93. 第9章 位图和像素
  94. 9.1 把像素作为数据
  95. 9.2 用像素和位图作为输入
  96. 9.3 用位图提供反馈信息
  97. 9.4 循环访问像素
  98. 9.5 位图操作
  99. 9.6 在oF中分析位图
  100. 9.7 使用边检测
  101. 9.8 使用像素数据
  102. 9.9 使用纹理
  103. 9.10 保存位图
  104. 9.11 更进一步
  105. 9.12 小结
  106. 第10章 声音与音频
  107. 10.1 声音作为反馈
  108. 10.2 声音和交互
  109. 10.3 计算机中声音是怎样的
  110. 10.4 Processing中的音频
  111. 10.5 openFrameworks里的声音
  112. 10.6 openFrameworks和FMOD Ex库
  113. 10.7 Maximilian
  114. 10.8 用Arduino对声音进行物理操作
  115. 10.9 PWM快速入门
  116. 10.10 用声音创造交互
  117. 10.11 更多参考资源
  118. 10.12 小结
  119. 第11章 Arduino和反馈
  120. 11.1 使用电机
  121. 11.2 智能反馈
  122. 11.3 使用伺服
  123. 11.4 使用家用电流
  124. 11.5 使用电器
  125. 11.6 LilyPad电路板介绍
  126. 11.7 使用振动
  127. 11.8 使用LED矩阵
  128. 11.9 使用串行外设接口协议
  129. 11.10 串行LED矩阵
  130. 11.11 使用液晶显示器
  131. 11.12 使用螺线管产生运动
  132. 11.13 更进一步
  133. 11.14 小结
  134. 第12章 协议和通信
  135. 12.1 网络通信
  136. 12.2 使用XML
  137. 12.3 理解网络和Internet
  138. 12.4 Processing中的网络通信
  139. 12.5 理解网络协议
  140. 12.6 使用ofxNetwork扩展库
  141. 12.7 用Arduino建立网络
  142. 12.8 Arduino与无线网络
  143. 12.9 用蓝牙通信
  144. 12.10 用MIDI通信
  145. 12.11 小结
  146. 第13章 图形与OpenGL
  147. 13.1 3D和交互有什么关系
  148. 13.2 理解3D
  149. 13.3 什么是OpenGL
  150. 13.4 在Processing中使用3D
  151. 13.5 在Processing中自定义形状
  152. 13.6 在Processing中使用坐标与模型变换
  153. 13.7 openFrameworks处理3D
  154. 13.8 OpenGL的光照
  155. 13.9 OpenGL的颜色混合模式
  156. 13.10 在oF中建立3D模型
  157. 13.11 在Processing中使用纹理
  158. 13.12 OpenGL的着色器
  159. 13.13 使用ofShader
  160. 13.14 在Processing中使用着色器
  161. 13.15 更进一步
  162. 13.16 小结
  163. 第14章 动作和姿势
  164. 14.1 计算机视觉
  165. 14.2 OpenCV
  166. 14.3 跟踪和使用blob
  167. 14.4 用oF检测特征
  168. 14.5 在Processing中使用OpenCV
  169. 14.6 Processing中的特征跟踪
  170. 14.7 结合物理做blob跟踪
  171. 14.8 OpenCV的进一步探索
  172. 14.9 手势识别
  173. 14.10 用oF捕获iOS手势
  174. 14.11 oF和触控技术
  175. 14.12 更进一步
  176. 14.13 使用微软的Kinect
  177. 14.14 小结
  178. 第15章 运动与定位
  179. 15.1 使用运动作为交互
  180. 15.2 使用软件模拟串行端口
  181. 15.3 理解并使用GPS
  182. 15.4 数据存储
  183. 15.5 将GPS数据记录到Arduino
  184. 15.6 发送GPS数据
  185. 15.7 获得移动设备的位置
  186. 15.8 更进一步
  187. 15.9 小结
  188. 第16章 空间与环境
  189. 16.1 建筑和空间的利用
  190. 16.2 感知环境数据
  191. 16.3 将XBee和Arduino结合使用
  192. 16.4 二维定位
  193. 16.5 X10协议
  194. 16.6 设置RFID传感器
  195. 16.7 读取温度和湿度
  196. 16.8 定位对象
  197. 16.9 更进一步
  198. 16.10 小结
  199. 第17章 更多参考资源
  200. 17.1 更多工具和平台
  201. 17.2 参考书籍
  202. 17.3 全书总结
书名:交互式程序设计(第二版)
作者:Joshua Noble
译者:毛顺兵, 张婷婷 等译
国内出版社:机械工业出版社
出版时间:2014年06月
页数:683
书号:978-7-111-46480-8
原版书书名:Programming Interactivity, 2nd Edition
原版书出版商:O'Reilly Media
Joshua Noble
 
Joshua Noble是一位交互设计师和开发者。除本书外,他还是《Flex 4 Cookbook》(O’Reilly出版社,2010年5月)一书的第一作者。他致力于为公共空间、技术和微型计算的交叉领域设计人性化的产品和服务,目前正在研究人们如何参与真实和虚拟的
社区。
 
 
本书封面动物是珍珠鸡(雉科,珠鸡亚科)。野生珍珠鸡原产自西非,秃头,顶着黑色的冠,体羽呈暗灰色或深蓝色,看起来非常特别。
饲养的珍珠鸡(由盔珠鸡演化而来)是农场的好帮手,农民看中它们的除虫能力(珍珠鸡以昆虫、绿叶菜和种子为食)。人们饲养珍珠鸡还因为它们具有高度的警觉性,狗吠、汽车响鸣和陌生人的脚步声都能引起它们的鸣叫。
雄鸟和雌鸟的叫声不同,当被激怒时两者都能发出尖锐的“啊,啊,啊”的声音,但只有雌鸟可以发出双音节的声音,听上去就像在说“回来,回来,回来”或者“荞麦,荞麦,荞麦”。
美食家对珍珠鸡赞赏有加,认为珍珠鸡肉质又瘦又嫩,且没有野鸡肉那么膻。也有人觉得煮熟的珍珠鸡肉吃起来味道像家鸡(还有点像火鸡)。
封面图片来自《The Riverside Natural History》一书。