第一节 课 开始 2
第1章 像素 2
1.1 坐标纸 2
1.2 绘制基本图形 3
1.3 灰度模式 7
1.4 RGB颜色 9
1.5 颜色透明度 10
1.6 自定义颜色取值范围 11
第2章 Processing 13
2.1 让Processing来拯救你 13
2.2 如何下载Processing 14
2.3 Processing应用程序 14
2.4 速写本 15
2.5 Processing中的代码 16
2.6 错误提示 18
2.7 Processing参考文档 20
2.8 “运行”按钮 21
2.9 你的第一个草图 22
第3章 交互 24
3.1 程序的运行流程 24
3.2 我们的好朋友:setup()和draw() 25
3.3 跟随鼠标移动 27
3.4 鼠标点击和键盘操作 30
第一节 课的项目 33
第二节 课 你所需要知道的一切 36
第4章 变量 36
4.1 什么是变量 36
4.2 变量的声明和初始化 37
4.3 使用变量 39
4.4 多种变量 42
4.5 系统变量 43
4.6 随机:多样化为生活增加趣味性 44
4.7 使用变量来创建Zoog 46
4.8 坐标平移 48
第5章 条件语句 50
5.1 布尔表达式 50
5.2 条件语句:if、else、else if 51
5.3 草图中的条件语句 54
5.4 逻辑运算符 56
5.5 多个鼠标翻转效果的实现 58
5.6 布尔变量 59
5.7 弹力球 62
5.8 物理学基础 66
第6章 循环 69
6.1 什么是迭代 69
6.2 while循环:你唯一真正需要的循环 71
6.3 “退出”条件 73
6.4 for循环 75
6.5 局域变量与全局变量 77
6.6 draw()循环内部的循环 80
6.7 长出胳膊的Zoog 82
第二节 课的项目 84
第三节 课 结构化 86
第7章 函数 86
7.1 将代码分解 86
7.2 用户自定义函数 87
7.3 定义函数 88
7.4 简单的模块化 89
7.5 实参 91
7.6 传递副本 95
7.7 返回类型 97
7.8 重新整理Zoog 100
第8章 对象 103
8.1 掌握面向对象编程 103
8.2 使用对象 104
8.3 编写饼干模具的程序 105
8.4 使用一个对象的具体步骤 107
8.5 使用标签进行组合 109
8.6 构造函数参数 112
8.7 对象也是数据类型 115
8.8 面向对象的Zoog 116
第三节 课的项目 119
第四节 课 重复性 122
第9章 数组 122
9.1 数组的作用 122
9.2 数组是什么 124
9.3 声明和创建数组 125
9.4 初始化数组 126
9.5 数组运算 127
9.6 简单的数组示例:蛇 129
9.7 对象数组 131
9.8 交互式对象 133
9.9 Processing的数组函数 136
9.10 1001个Zoog 137
第四节 课的项目 139
第五节 课 融会贯通 142
第10章 算法 142
10.1 我们现在在哪里?我们将要去哪里 142
10.2 算法:跟着你自己的节奏跳舞 143
10.3 从概念到部分 144
10.4 第1部分:雨水采集器 145
10.5 第2部分:相交 147
10.6 第3部分:计时器 152
10.7 第4部分:雨滴 154
10.8 整合 157
10.9 为下一步做好准备 164
第五节 课的项目 165
第11章 调试 166
11.1 建议1:休息一下 166
11.2 建议2:让另外一个人参与进来 166
11.3 建议3:简化 167
11.4 建议4:println()是你的朋友 168
第12章 库 171
12.1 库概述 171
12.2 内置库 172
12.3 第三方库 172
12.4 手动安装库 173
第六节 课 你周围的世界 176
第13章 数学 176
13.1 数学和编程 176
13.2 模数 177
13.3 随机数 178
13.4 概率回顾 179
13.5 代码中的事件概率 179
13.6 Perlin噪声 181
13.7 map()函数 184
13.8 角度 185
13.9 三角学 186
13.10 振荡 188
13.11 递归 190
13.12 二维数组 193
第14章 三维平移和旋转 198
14.1 z坐标轴 198
14.2 P3D究竟是什么 202
14.3 顶点形状 203
14.4 自定义三维图形 205
14.5 简单的旋转 207
14.6 围绕不同的轴旋转 209
14.7 scale()函数 211
14.8 pushMatrix()和popMatrix()函数 212
14.9 用Processing模拟太阳系 218
14.10 PShape类 220
第六节 课的项目 222
第七节 课 显微镜下的像素 224
第15章 图像 224
15.1 图像入门 224
15.2 图像的动画效果 226
15.3 我的第一个图像处理滤镜 228
15.4 图像数组 229
15.5 像素,像素,更多的像素 231
15.6 图像处理简介 235
15.7 另外一个图像处理滤镜:制作属于你自己的tint()函数 236
15.8 写入另外一个PImage对象的像素 237
15.9 第二阶段:像素组处理 239
15.10 具有创意的可视化 242
第16章 视频 244
16.1 视频直播 244
16.2 已录制的视频 249
16.3 软件镜像 251
16.4 视频作为传感器和计算机视觉 256
16.5 背景消除 260
16.6 运动检测 263
16.7 计算机视觉库 266
第七节 课的项目 267
第八节 课 外面的世界 270
第17章 文本 270
17.1 字符串从哪来 270
17.2 什么是字符串 271
17.3 显示文字 273
17.4 文字的动态效果 275
17.5 文字马赛克 278
17.6 旋转文字 280
17.7 按字符逐一显示文字 281
第18章 数据输入 286
18.1 字符串的操作 286
18.2 拆分和组合 288
18.3 处理数据 290
18.4 处理文本文件 291
18.5 表格数据 293
18.6 非标准化格式的数据 297
18.7 文本分析 302
18.8 XML 305
18.9 使用Processing的XML类 307
18.10 JSON 312
18.11 JSONObject和JSONArray 315
18.12 线程 318
18.13 API 320
第19章 数据流 323
19.1 网络通信 323
19.2 创建服务器 324
19.3 创建客户端 327
19.4 广播 329
19.5 多用户通信,第1部分:服务器 331
19.6 多用户通信,第2部分:客户端 333
19.7 多用户通信,第3部分:组合 335
19.8 串行通信 336
19.9 使用信号交换的串行通信 338
19.10 使用字符串的串行通信 339
第八节 课的项目 342
第九节 课 制造噪音 344
第20章 声音 344
20.1 基础的声音播放 344
20.2 关于声音播放的更多内容 348
20.3 声音合成 350
20.4 声音分析 353
20.5 声音阈值 355
20.6 频谱分析 358
第21章 导出 361
21.1 导出至Web 361
21.2 独立的应用程序 362
21.3 高分辨PDF文件 363
21.4 图像和saveFrame() 367
21.5 录制视频 367
第九节 课的项目 370
第十节 课 超越Processing 372
第22章 高级的面向对象编程 372
22.1 封装 372
22.2 继承 374
22.3 一个继承的示例:图形 378
22.4 多态性 381
22.5 重载 384
第23章 Java 386
23.1 揭开Processing魔法 386
23.2 如果不使用Processing,代码看上去会是什么样子 387
23.3 探索Java API 389
23.4 其他有用的Java类:ArrayList 390
23.5 其他有用的Java类:Rectangle 396
23.6 异常(错误)处理 398
23.7 Processing之外的Java 400
附录A 常见错误 402