标题：Processing互动编程艺术
图书信息
Processing互动编程艺术  谭亮  编著
ISBN 978-7-121-13463-0
2011年6月出版
定    价：39.00元 16开
220页
内 容 简 介
本书将引领你进入编程艺术的世界。本书揭示了运用Processing创建高质量互动艺术作品的奥秘，你将感受到Processing的敏捷性和艺术性，内容覆盖绘图、响应互动、动画、视频、3D、物理计算等专题。精选的实例将激发读者的想象力和创造的乐趣，阅读和练习本书的案例即能快速进入互动艺术创作。本书语言简洁易懂，案例设计独特，所有代码均可在线下载，适合于专业编程人员和学习互动艺术的读者。
推 荐 序
“互动设计”是随着科技和艺术的发展而产生的一种新兴艺术设计表现形式，它以人机交互为核心，是整合了视觉艺术、工业设计、计算机编程、机电装置等多专业的综合性设计，使人们在互动作品中获得超越现实的体验和情感共鸣。
以交互体验和互动技术为核心的创作已经在欧美国家取得长足的发展和突破，相对于传统艺术形式，它在“互动性”和“参与性”方面有独特的优势。代码编程是互动设计的重要的创作工具，通常被认为是很单调的代码与数学符号成了叙述情感或表现思想的重要手段，由此衍生的代码艺术也在西方当代艺术领域内流行。观众在与作品互动的时候，所感受的不仅是艺术家编写的程序，而且是代码被执行后的互动体验，如同欣赏交响乐团按照乐谱演奏作曲家创作的曲子一样，观众听到的不是乐谱，而是在体验由乐谱演奏出来的音乐。
Processing编程语言在欧美互动媒体领域被广泛使用，此书作为国内第一本Processing专著，融入了作者在欧洲的访学研究和教学实践的总结，精选的实例能让读者用全新的思维方式去创造充满乐趣的互动作品。对于想进入互动编程艺术领域的人，这是一本很好的学习书籍。
—田少煦
深圳大学传播学院教授、数字媒体与视觉文化研究所所长、硕士研究生导师
教育部高等学校文科计算机教学指导委员会艺术分委员会委员
中国数字影像行业资格认证专家委员会委员
前 言
编程，即计算机程序设计，是让计算机为解决某个问题而使用某种程序设计语言编写程序代码，并最终得到结果的过程。也许有人认为编程课程只适合于理工类专业，对艺术设计类专业来讲似乎意义不大，实际上并非这样。程序设计技术的先驱者唐纳德·克努特认为，程序设计既是一门科学，也是一门艺术，这两方面可以彼此很好地相互补充。科学的方法一般是通过“逻辑的”、“系统的”、“非个人的”、“冷静的”、“理性的”这些词来表征的，而艺术的方法是通过“艺术的”、“创新的”、“博爱的”、“渴望的”、“非理性的”这些词来表征的。
2009年11月，英国伦敦V&A博物馆“数字设计感官展”展出了大量由计算机程序生成的互动艺术作品，展览打破了作品静态呈现的传统展示方式，颠覆了观众静观作品的观看惯性。计算机程序对艺术的介入引发了艺术家创作工具和思维方式的转变。研究如何编写程序、创造声音或图像的界面以实现代码与观众之间的交流互动，成为设计艺术界新的课题。美国排名前列的罗德岛设计学院聘请麻省理工媒体实验室ACG小组主任约翰·梅达担任校长，传统的艺术设计行业正面临着一场革命。编写程序不仅是程序员的专利，它也已成为数字艺术家的创作手段，以及艺术院校的必修课程。英国皇家艺术学院、耶鲁大学设计学院、加州大学媒体艺术专业、卡内基梅隆大学等院校都把编程作为教学课题。
大部分设计师都会使用商业软件（如 Photoshop、Illustrator、Flash）来从事创作，这些软件功能丰富、使用方便，可以实现预设的效果。但人们的创意和表现形式往往被企业所主导的制式化生产工具所限制。Processing的出现是艺术设计创作的一场革命，它是一种具有前瞻性的新兴计算机语言，用户主要面向计算机程序员和数字艺术家。艺术家可以运用Processing生成唯美的图形，为互动艺术作品编写程序，将抽象的数据呈现为视觉形象。当你进入到互动编程艺术的世界，就会发现这一切都是让人兴奋不已的。
由于文化和语言的差异，国内研究Processing的学术机构并不多见，中文网站和学术论坛等学习资源有限，也没有相关的中文版本的书籍。资料的缺乏在很大程度上降低了中国设计师学习Processing的积极性。鉴于以上现实，作者根据自身的教学实践编写了本书。本书可作为学习互动艺术编程的基础书籍，主要面向艺术院校数字媒体设计专业、交互设计专业，以及业界的设计师，等等。本书前两章主要介绍了Processing的背景、编程与互动艺术的关系，以及编程基础知识。接下来的章节对绘画、互动、动画、函数与对象、数组、图片与文字、视频与音频、3D与物理计算等方面进行了较为全面的论述，并结合了大量的实例与作品分析来启发读者的互动艺术思维。在国内，互动艺术和编程艺术都是新的研究领域，本书是在一个全新的领域中进行探索，在此过程中难免会存在不完善之处，希望得到相关专家和广大读者的批评指正！
在创意产业迅速发展的中国，我们有理由相信新一代的艺术家和设计师们不会只停留在软件应用的层次，他们会运用编程去创新、发展艺术与设计，并将民族文化与思想注入到作品中！
作者：谭亮
2011年5月于广州
目 录
第1章  认识Processing 1
1.1  Processing是什么 2
1.2  Processing的诞生 3
1.2.1  MIT与约翰·梅达 3
1.2.2  Casey Reas和Ben Fry 6
1.3  Processing能做什么 8
1.3.1  数据视觉化 8
1.3.2  生成艺术 10
1.3.3  互动艺术 14
第2章  使用Processing 17
2.1  下载与安装 17
2.2  开发环境 18
2.2.1  开发环境界面 18
2.2.2  快捷按钮 20
2.3  语法结构 20
2.3.1  基本语句 21
2.3.2  代码编写流程 22
2.3.3  注释 22
2.3.4  表达式和陈述 23
2.3.5  控制台 24
2.4  变量 24
2.4.1  声明一个变量 25
2.4.2  变量的类型 26
2.4.3  系统变量 27
2.5  符号与条件式 28
2.5.1  布尔表达式 28
2.5.2  算术运算符 28
2.5.3  关系操作符 29
2.5.4  逻辑操作符 29
2.5.5  条件式——if、else和else if 33
本章作业 36
第3章  绘画 39
3.1  画布与坐标 39
3.1.1  像素与画布 39
3.1.2  直角坐标与计算机屏幕坐标 40
3.2  图形 41
3.2.1  点 41
3.2.2  直线 42
3.2.3  矩形 42
3.2.4  圆与圆弧形 43
3.2.5  三角形与四边形 45
3.2.6  贝塞尔曲线 46
3.2.7  自由图形 47
3.3  色彩 49
3.3.1  灰阶与透明度 50
3.3.2  RGB色彩 52
3.3.3  HSB色彩 53
3.4  绘画属性设定 55
3.4.1  填色与边框 55
3.4.2  图形的顺序 56
3.5  重复绘画 58
3.5.1  简单的重复 58
3.5.2  迭代法与while循环 59
3.5.3  for 循环 60
3.6  PDF输出与绘画实例 62
3.6.1  PDF格式输出 62
3.6.2  绘画实例 63
3.6.3  学生作品欣赏 64
本章作业 66
第4章  响应互动 67
4.1  鼠标响应 67
4.1.1  鼠标移动响应mouseX 和 mouseY 67
4.1.2  pmouseX和pmouseY 70
4.1.3  鼠标响应事件 72
4.2  键盘响应 75
4.2.1  按击键响应 75
4.2.2  特定按键响应 78
4.2.3  功能键响应 79
4.3  随机random 80
4.4  限制constrain 83
本章作业 84
第5章  动画 85
5.1  运动的产生 85
5.1.1  变量控制运动 85
5.1.2  条件句控制运动 86
5.1.3  加速与减速 87
5.2  随机运动 89
5.3  曲线轨迹运动 90
5.4  坐标转移、旋转与缩放 95
5.4.1  坐标转移 95
5.4.2  旋转运动 96
5.4.3  缩放运动 99
5.5  pushMatrix() 与 popMatrix() 100
5.6  时间控制 102
本章作业 103
第6章  函数与对象 105
6.1  函数 105
6.1.1  定义函数 105
6.1.2  调用函数 109
6.1.3  函数与循环 111
6.1.4  函数返回类型 114
6.2  类与对象 115
6.2.1  面向对象的程序设计 115
6.2.2  定义类 116
6.2.3  创建对象 119
6.2.4  构造器的引数 121
本章作业 124
第7章  数组 125
7.1  变量列数组 127
7.1.1  声明变量列数组 127
7.1.2  定义数组的长度 128
7.1.3  给数组赋值 128
7.2  变量列数组实例 130
7.3  对象的数组 134
本章作业 137
第8章  图片与文字 139
8.1  图片 139
8.1.1  显示图片 139
8.1.2  图片互动 143
8.1.3  图片色彩设置 144
8.2  文字 147
8.2.1  使用字体 147
8.2.2  字符串 148
本章作业 150
第9章  视频 151
9.1  播放视频文件 151
9.2  实时视频输入 155
9.3  视频互动特效 158
9.3.1  互动色彩调整 158
9.3.2  视频马赛克 159
9.3.3  色彩捕捉 161
9.3.4  版画效果 166
本章作业 169
第10章  Minim音频 171
10.1  播放音频 171
10.2  声音的视觉化 173
10.3  音频输入互动 179
本章作业 181
第11章  3D 183
11.1  3D简介 183
11.2  3D图形 184
11.3  3D空间旋转 185
11.4  3D互动 187
11.5  参考案例 190
本章作业 192
第12章  Arduino与物理计算 193
12.1  Arduino简介 193
12.2  Arduino与开关 195
12.3  Arduino与传感器 197
12.4  光敏传感器 200
本章作业 202
附录A 203
后记 205
参考书目 206