本书基于Python编程,实现了15个有趣的互动场景,循序渐进地向读者展示了这些场景的实现过程,帮助读者掌握Python编程。全书共16章,讲解了Python基本语句、算术运算符、字符串、循环、全局变量、选择判断、随机函数、列表、函数、复合运算符、递归、面向对象编程等入门知识,同时涉及Processing软件的配置、绘制、帧率、鼠标键盘互动、字符串处理、文字处理、音视频处理等使用方法。此外还简要介绍了RGB颜色模型、HSB颜色模型、图像、人脸检测的基本概念,方便读者利用自己的创意来进行进一步的发挥和创造。附录A给出了书中练习题的参考答案,附录B给出了书中基本概念的索引。

第 1 章 Python与Processing介绍 1

1.1 什么是Python 1

1.2 Processing下载与配置 2

1.3 小结 4

第 2 章 转动眼珠的圆脸 5

2.1 显示一个圆 6

2.2 整数与算术运算符 9

2.3 显示多个圆 10

2.4 变量 12

2.5 设置背景和圆的亮度 16

2.6 跟随鼠标移动的圆圈 18

2.7 转动的眼珠 20

2.8 转动眼珠的圆脸 24

2.9 小结 26

第3 章 催眠的同心圆27

3.1 变大的圆圈 28

3.2 圆圈重复变大 29

3.3 绘制同心圆 31

3.4 利用for循环语句绘制同心圆 33

3.5 同心圆逐渐变大的动画效果 37

3.6 小结 40

第4 章 旋转的圆弧 41

4.1 绘制圆弧 42

4.2 圆弧的旋转 43

4.3 利用全局变量实现圆弧变长 44

4.4 if语句实现圆弧长度重复变化 47

4.5 逻辑运算符 49

4.6 圆弧同时旋转与长度变化 50

4.7 多层圆弧效果 51

4.8 小结 52

第5章 简易毛笔字 53

5.1 鼠标画圆 54

5.2 鼠标画线 55

5.3 改变画线粗细 57

5.4 粗细平滑过渡 59

5.5 一条线段上粗细插值 59

5.6 绘制分叉线 61

5.7 小结 63

第6 章 旋转的方块 64

6.1 绘制方块 65

6.2 方块旋转 67

6.3 方块缩放 68

6.4 绘制一行方块 68

6.5 绘制方块阵列 71

6.6 方块阵列旋转缩放 74

6.7 文字表情包 76

6.8 小结 78

第7 章 随机扭动的曲线 79

7.1 圆圈上的点 80

7.2 random随机函数 81

7.3 noise随机函数 82

7.4 连续变化的随机点 85

7.5 将点连接成曲线 86

7.6 处理首尾不连续的问题 88

7.7 彩色曲线效果 89

7.8 清屏与保存图片 93

7.9 小结 94

第8 章 随风飘动的粒子 95

8.1 逐渐消失的轨迹 96

8.2 随机运动的圆点 98

8.3 列表的概念 100

8.4 利用列表实现多个粒子 104

8.5 随机速度场 105

8.6 彩色效果 107

8.7 小结 108

第9 章 互相作用的圆球 109

9.1 多个随机圆球 110

9.2 圆球间的作用力 111

9.3 鼠标交互添加圆球 114

9.4 不同半径的圆球 114

9.5 无参数的函数 116

9.6 小结 118

第 10 章 随机山水画 119

10.1 HSB颜色模型 120

10.2 天空颜色渐变 122

10.3 绘制彩色云朵 123

10.4 绘制山脉 125

10.5 鼠标点击更新画面 128

10.6 带参数的函数 130

10.7 小结 133

第 11 章 递归分形树 134

11.1 递归 135

11.2 绘制分形树 139

11.3 鼠标交互的分形树 142

11.4 添加随机性 143

11.5 小结 145

第 12 章 粒子同心圆 146

12.1 类的成员变量 147

12.2 类的成员函数 149

12.3 面向对象版本的运动粒子 151

12.4 粒子移向同心圆 152

12.5 小结 155

第 13 章 图像像素采样 156

13.1 图像文件的读取与显示 157

13.2 像素颜色的获取 158

13.3 生成马赛克图像 159

13.4 随机采样画圆 160

13.5 均匀采样画圆 161

13.6 叶序采样画圆 165

13.7 小结 168

第 14 章 定制字符画 169

14.1 均匀采样图片显示文字 170

14.2 均匀采样显示一段文字 171

14.3 调整均匀采样位置 173

14.4 添加随机性 175

14.5 小结 178

第 15 章 音乐可视化 179

15.1 利用Minim库播放音乐 180

15.2 绘制音乐波形 181

15.3 绘制音乐频谱波形 185

15.4 圆圈射线频谱显示 186

15.5 射灯连线 190

15.6 变大变小的眼睛 191

15.7 小结 192

第 16 章 坚持一百秒 193

16.1 反弹的小球 194

16.2 添加飞碟 196

16.3 背景音乐和得分显示 197

16.4 摄像头视频获取与处理 200

16.5 人脸控制飞碟移动 203

16.6 游戏效果的改进 207

16.7 小结 208

附录A 练习题参考答案 209

附录B 语法知识索引 225

童晶,浙江大学计算机专业博士,河海大学计算机系副教授、硕士生导师,中科院兼职副研究员,主要研究方向为计算机图形学、数字化艺术、虚拟现实、三维打印等,曾发表学术论文30余篇。具有15年的一线编程教学经验,被评为河海大学优秀主讲教师。开设课程在校内广受好评,在知乎、网易云课堂、中国大学MOOC等线上平台已有上百万次的阅读量。积极投身教学与学生创新,曾指导学生获得英特尔嵌入式比赛全国一等奖、“挑战杯”全国三等奖、“中国软件杯”全国一等奖、中国大学生服务外包大赛全国一等奖等众多奖项。