Processing语言是麻省理工大学的Casey Reas和BenFry两人原创,如今已经风靡世界。随着学习的人越来越多,简单的代码教程已经无法满足大家的需要。本书是Casey Reas和BenFry关于Processing的集大成之作,加入了更多实践案例,让读者学习得更加深入。
《Processing语言权威指南》本书介绍了可视化艺术中的计算机编程概念,对开源编程语言Processing做了非常详尽的阐述。学生、艺术家、设计师、建筑师、研究者,以及任何想编程实现绘画、动画和互动的人都可以使用它。书中的大部分章节是短小的单元,介绍Processing的语法和基本概念(变量、函数、面向对象编程),涵盖与软件相关的图像处理、绘制,并且给出了大量简短的原型程序,配以相应的过程图像与注释。书中还有一些访谈文章,与动画制作、表演、产品原型等领域的几位创作者们讨论了与他们作品相关的话题。本书的“扩展”部分对更多研究领域做了简短的介绍,包括计算机视觉、声音、电子制作等。Processing软件以及书中的所有代码均可以在网站下载,并且在这些代码的基础上做进一步的开发。
目录
- 序xix
- 前言xxi
- Processing
- 使用Processing
- 结构一:代码要素
- 形状一:坐标与基本图形
- 数据一:变量
- 数学一:算术与函数
- 控制一:判断
- 控制二:重复
- 形状二:顶点
- 数学二:曲线
- 色彩一:用数字定义颜色
- 图像一:显示与染色
- 数据二:文本
- 数据三:转换与对象
- 字体设计一:显示
- 数学三:三角学
- 数学四:随机
- 变换一:平移与矩阵
- 变换二:旋转与缩放
- 开发一:草图与技术
- 综合一:形式与代码
- 访谈一:印刷
- 结构二:连续运行
- 结构三:函数
- 形状三:参数与递归
- 输入一:鼠标一
- 绘图一:静态形式
- 输入二:键盘
- 输入三:事件
- 输入四:鼠标二
- 输入五:时间与日期
- 开发二:迭代与调试
- 综合二:输入与响应
- 访谈二:软件与网页
- 运动一:直线与曲线
- 运动二:机械与有机体
- 数据四:数组
- 图像二:动画
- 图像三:像素
- 字体设计二:运动
- 字体设计三:响应
- 色彩二:分量
- 图像四:滤波、融合、复制与蒙板
- 图像五:图像处理
- 输出一:图像
- 综合三:运动与数组
- 访谈三:动画与录像
- 结构四:对象一
- 绘图二:动态形式
- 输出二:文件导出
- 输入六:文件导入
- 输入七:界面
- 结构五:对象二
- 模拟一:生物
- 模拟二:物理
- 综合四:结构与接口
- 访谈四:演出与装置
- 扩展一:继续……
- 扩展二:三维
- 扩展三:视觉
- 扩展四:网络
- 扩展五:声音
- 扩展六:印刷品
- 扩展七:移动平台
- 扩展八:电子器件
- 附录A:运算顺序
- 附录B:保留字
- 附录C:ASCII 与Unicode
- 附录D:比特、二进制与十六进制
- 附录E:优化
- 附录F:编程语言
- 附录G:代码对比
- 相关媒介
- 术语表
- 代码索引
- 索引
- 分类目录
- 序xix
- 前言xxi
- Processing
- 使用Processing
- 色彩一:用数字定义颜色
- 色彩二:分量
- 控制一:判断
- 控制二:重复
- 数据一:变量
- 数据二:文本
- 数据三:转换与对象
- 数据四:数组
- 开发一:草图与技术
- 开发二:迭代与调试
- 绘图一:静态形式
- 绘图二:动态形式
- 图像一:显示与染色
- 图像二:动画
- 图像三:像素
- 图像四:滤波、融合、复制与蒙板
- 图像五:图像处理
- 输入一:鼠标一
- 输入二:键盘
- 输入三:事件
- 输入四:鼠标二
- 输入五:时间与日期
- 输入六:文件导入
- 输入七:界面
- 数学一:算术与函数
- 数学二:曲线
- 数学三:三角学
- 数学四:随机
- 运动一:直线与曲线
- 运动二:机械与有机体
- 输出一:图像
- 输出二:文件导出
- 形状一:坐标与基本图形
- 形状二:顶点
- 形状三:参数与递归
- 模拟一:生物
- 模拟二:物理
- 结构一:代码要素
- 结构二:连续运行
- 结构三:函数
- 结构四:对象一
- 结构五:对象二
- 综合一:形式与代码
- 综合二:输入与响应
- 综合三:运动与数组
- 综合四:结构与接口
- 变换一:平移与矩阵
- 变换二:旋转与缩放
- 字体设计一:显示
- 字体设计二:运动
- 字体设计三:响应
- 访谈一:印刷
- 访谈二:软件与网页
- 访谈三:动画与录像
- 访谈四:演出与装置
- 扩展一:继续……
- 扩展二:三维
- 扩展三:视觉
- 扩展四:网络
- 扩展五:声音
- 扩展六:印刷品
- 扩展七:移动平台
- 扩展八:电子器件
- 附录A:运算顺序
- 附录B:保留字
- 附录C:ASCII 与Unicode
- 附录D:比特、二进制与十六进制
- 附录E:优化
- 附录F:编程语言
- 附录G:代码对比
- 相关媒介
- 术语表
- 代码索引
- 索引
- 详细目录
- 序xix
- 前言xxi
- 本书内容xxi
- 如何阅读本书xxii
- 关于我们——Casey xxiii
- 关于我们——Benxxiv
- 致谢xxv
- Processing
- 软件
- 软件素养
- 开放
- 教育
- 网络
- 上下文
- 使用Processing
- 下载与安装
- 环境
- 导出
- 范例浏览
- Reference
- 结构一:代码要素
- 注释
- //, /* */函数
- 表达式与语句
- “;”, “,”大小写敏感
- 空格
- 控制台
- print(), println()形状一:坐标与基本图形
- 坐标
- size()基础图形
- point(), line(), triangle()quad(), rect(),ellipse()bezier()绘图顺序
- 灰度值
- background(), fill()stroke(), noFill()noStroke()绘图属性
- smooth(), noSmooth()strokeWeight(),strokeCap()strokeJoin()绘图模式
- ellipseMode(), rectMode()数据一:变量
- 数据类型
- int, float, Boolean true, false变量
- =Processing 变量
- width, height数学一:算术与函数
- 算术
- , -, *, /, %操作符优先级与组
- ()简便方法
- , --, =, -=, *=, /=, -限制数值范围
- ceil(), floor(), round()min(), max()控制一:判断
- 关系表达式
- >, <, >=, <=, ==, !=条件语句
- if, else, {}逻辑运算符
- ||, &&, !控制二:重复
- 重复
- 嵌套循环
- 格式化代码块
- 形状二:顶点
- 顶点
- beginShape(), endShape()vertex()点与线
- 形状
- 曲线
- curveVertex()bezierVertex()数学二:曲线
- 指数运算与开方
- sq(), sqrt(), pow()正规化与映射
- norm(), lerp(), map()简单曲线
- 色彩一:用数字定义颜色
- 设置颜色
- 颜色数据
- color, color()RGB 与HSB
- colorMode()十六进制
- 图像一:显示与染色
- 显示
- PImage, loadImage()image()图像颜色与透明度
- tint(), noTint()数据二:文本
- 字符
- char单词、句子
- String数据三:转换与对象
- 数据转换
- boolean(), byte(), char(),int(), float(), str()对象
- “”, PImagewidth PImageheight Stringlength StringstartsWith()StringendsWith()StringcharAt()StringtoCharArray()StringsubString()StringtoLowerCase()StringtoUpperCase()Stringequals()字体设计一:显示
- 加载字体与绘制文本
- PFont, loadFont()textFont(), text()文字属性
- textSize(), textLeading()textAlign(), textWidth()数学三:三角学
- 角度与波形
- PI, QUARTER_PI, HALF_PI,TWO_PI, sin(), cos()radians(),degrees()圆、弧与螺旋
- arc()数学四:随机
- 随机数
- random(), randomSeed()随机噪声
- noise(), noiseSeed()变换一:平移与矩阵
- 平移
- translate()控制变换矩阵
- pushMatrix(), popMatrix()变换二:旋转与缩放
- 旋转与缩放
- rotate(), scale()组合式变换
- 新坐标
- 开发一:草图与技术
- 画出软件的草图
- 编程技术
- 综合一:形式与代码
- 拼贴引擎
- 瑞利波
- 威尔森网络
- 曼德勃罗集合
- 访谈一:印刷
- FractalInvader,Substrate(采访Jared Tarbell)
- Shape of Song(Martin Wattenberg访谈)
- The Objectivity Engine(采访James Paterson)
- RandomFont Beowolf(采访Erik van Blokland)
- 结构二:连续运行
- 连续的计算
- draw(), frameRate()frameCount控制程序流
- setup(), noLoop()变量的作用域
- 结构三:函数
- 抽象
- 创建函数
- void函数重载
- 计算并返回结果
- return形状三:参数与递归
- 参数化造型
- 递归
- 输入一:鼠标一
- 鼠标数据
- mouseX, mouseY pmouseX, pmouseY鼠标按键
- mousePressed mouseButton鼠标图标
- cursor(), noCursor()绘图一:静态形式
- 简单的工具
- 利用图像绘画
- 输入二:键盘
- 键盘数据
- keyPressed, key编码键
- keyCode输入三:事件
- 鼠标事件
- mousePressed()mouseReleased()mouseMoved()mouseDragged()键盘事件
- keyPressed()keyReleased()控制程序流
- loop(), redraw()输入四:鼠标二
- 限制
- constrain()距离
- dist()缓动
- abs()速度
- 方向
- atan2()输入五:时间与日期
- 时、分与秒
- second(), minute()hour(), millis()日期
- day(), month(), year()开发二:迭代与调试
- 迭代
- 调试
- 综合二:输入和响应
- Pong
- 光标
- 文字输入
- 条纹钟
- 访谈二:软件与网页
- Sodaconstructor(采访Ed Burton)
- They Rule(采访Josh On)
- Hektor 与Scriptographer(采访Jürg Lehni)
- The Endless Forest(采访Auriea Harvey 与Micha?l Samyn)
- 运动一:直线与曲线
- 控制运动
- 沿着曲线运动
- 通过转换制造运动效果
- 运动二:机械与有机体
- 机械运动
- 有机运动
- 数据四:数组
- 使用数组
- Array, []new, Arraylength存储鼠标数据
- 数组函数
- append(), shorten()expand(), arraycopy()二维数组
- 图像二:动画
- 序列图像
- 运动的图像
- 图像三:像素
- 读取像素
- get()写入像素
- set()字体设计二:运动
- 动态的单词
- 动态的字母
- 字体设计三:响应
- 会响应的单词
- 会响应的字母
- 色彩二:分量
- 提取颜色
- red(), blue(), green()alpha(), hue(),saturation(),brightness()动态色彩调色板
- 图像四:滤波、融合、复制与蒙板
- 滤波与融合
- filter(), blend()blendColor()复制像素
- copy()蒙板
- mask()图像五:图像处理
- 像素
- pixels[], loadPixels()updatePixels()createImage()像素分量
- 卷积
- 图像作为数据
- 输出一:图像
- 保存图像
- save()保存图像序列
- saveFrame()练习
- 综合三:运动与数组
- 蜈蚣
- 漫长的绘画
- AmoebaAbstract_03
- 机器人先生
- 访谈三:动画、录像
- REM “Animal”(采访Mathew Cullen 和Grady Hall)
- Waking life(采访Bob Sabiston)
- Eye Catching(采访Jennifer Steinkamp)
- The Mini-Epoch series(采访Semiconductor)
- 结构四:对象一
- 面向对象编程
- 使用类和对象
- class, Object对象的数组
- 多个文件
- 绘图二:动态形式
- 主动的工具
- 主动的绘图
- 输出二:文件导出
- 对数据进行格式化
- nf()导出文件
- saveStrings()PrintWritercreateWriter()PrintWriterflush()PrintWriterclose()exit()输入六:文件导入
- 读取数字
- loadStrings(), split()splitTokens()读取字符
- WHITESPACE输入七:界面
- 翻转、按钮与拖动
- 复选框与单选按钮
- 滚动条
- 结构五:对象二
- 多个构造函数
- 组合对象
- 继承
- extends, super模拟一:生物
- 细胞自动机
- 自主代理
- 模拟二:物理
- 运动模拟
- 粒子系统
- 弹簧
- 综合四:结构与接口
- 无题
- 池塘
- 摇摆树
- SodaProcessing
- 访谈四:演出与装置
- Mini Movies(采访SUEC)
- DJ I, Robot Sound System(采访Chris Csikszentmihályi)
- Messa di Voce(采访Golan Levin和Zachary Lieberman)
- Listening Post(采访Mark Hansen)
- 扩展一:继续……
- 扩展Processing
- Processing 与Java
- 其他编程语言
- 扩展二:三维
- 简单回顾三维软件的历史
- 三维形态
- 摄像机
- 材质与灯光
- 三维工具
- 小结
- 代码
- 资源
- 扩展三:视觉
- 互动艺术中的计算机视觉
- 基础的计算机视觉技术
- 真实世界中的计算机视觉
- 计算机视觉的工具
- 小结
- 代码
- 资源
- 扩展四:网络
- 互联网和艺术
- 网络协议及其概念
- 网络工具
- 小结
- 代码
- 资源
- 扩展五:声音
- 在艺术中的音乐和声音编程
- 声音与音乐信息
- 声音和音乐的数码表现
- 作为信息的音乐
- 声音编程工具
- 小结
- 代码
- 资源
- 扩展六:印刷品
- 印刷与计算机
- 高分辨率文件输出
- 生产
- 小结
- 代码
- 资源
- 扩展七:移动平台
- 手机软件应用
- 手机平台
- 手机编程
- 手机编程平台
- 小结
- 代码
- 资源
- 扩展八:电子器件
- 艺术中的电子器件
- 电
- 电子器件
- 电路
- 微控制器和输入/输出面板
- 传感器和通信
- 控制物理媒介
- 小结
- 代码
- 资源
- 附录A:运算顺序
- 附录B:保留字
- 附录C:ASCII 与Unicode
- 附录D:比特、二进制与十六进制
- 附录E:优化
- 附录F:编程语言
- 附录G:代码对比
- 相关媒介
- 术语表
- 代码索引
- 索引