前言 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 X 10协议 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