好书推荐 好书速递 排行榜 读书文摘

Processing编程学习指南(原书第2版)

Processing编程学习指南(原书第2版)
作者:[美]丹尼尔希夫曼(Daniel Shiffman)
译者:李存
出版社:机械工业出版社
出版年:2017-03
ISBN:9787111558675
行业:计算机
浏览数:203

内容简介

在视觉化界面中学习电脑编程的基本原理!

本书介绍了编程的基本原理,涵盖了创建最前沿的图形应用程序(例如互动艺术、实时视频处理和数据可视化)所需要的基础知识。作为一本实验风格的手册,本书精心挑选了部分高级技术进行详尽解释,可以让图形和网页设计师、艺术家及平面设计师快速熟悉Processing编程环境。

从算法设计到数据可视化,从计算机视觉到3D图形,在有趣的互动视觉媒体和创意编程的背景之下,本书对面向对象的编程进行了彻底的阐述。此外,读者可以从本书的配套网站(www.learningprocessing.com)下载本书所有的源代码、章节练习以及如下的简短教程:

基础知识(学习Processing中的简单图形和坐标系统)

RGB颜色(学习数位色彩的基础知识)

Eclipse中的Processing(Java开发者在IDE中编写Processing代码)

第三方库文件(如何安装第三方Processing库文件)

本书主要特色包括

对编程经验零要求。本书适用于真正的编程初学者!

循序渐进的案例、详尽的解释、习题、示例代码,实现学习曲线的最优化。

Processing的快速上手指南。Processing免费且开源,是那些昂贵、令人生畏的编程语言的最佳替代者。

......(更多)

作者简介

作者:丹尼尔·希夫曼

(Daniel Shiffman)

纽约大学Tisch艺术学院助理艺术教授,他在耶鲁大学获得了数学与哲学学士学位和交互通信的硕士学位。多年来,他一直用Processing这门艺术家友好型开源语言开发教程、教学示例和代码库,拥有丰富的算法和应用教学经验。此外,还著有《代码本色》(Nature of Code)。

译者:李存

荷兰埃因霍芬理工大学工业设计学院交互设计品质组(Designing Quality in Interaction)博士研究员。在江南大学设计学院攻读硕士学位期间曾赴意大利米兰理工大学设计学院学习。在国内外设计比赛中获奖20余次;在国内外重要期刊及国际学术会议上发表相关学术论文5篇;合编设计相关书籍2本;主持和参与过包括意大利杜卡迪、荷兰飞利浦、美的、苏州博物馆、威成花器等公司的多项产品设计和交互设计项目;6项作品曾在包括荷兰设计周在内的国内外展览中展出;个人和作品曾被视觉同盟、《艺术与设计》和《创意与设计》等媒体报导。

......(更多)

目录

出版者的话

译者序

致谢

前言

第一节课 开始

第1章 像素2

1.1 坐标纸2

1.2 绘制基本图形3

1.3 灰度模式7

1.4 RGB颜色9

1.5 颜色透明度10

1.6 自定义颜色取值范围11

第2章 Processing13

2.1 让Processing来拯救你13

2.2 如何下载Processing14

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

第二节课 你所需要知道的一切

第4章 变量36

4.1 什么是变量36

4.2 变量的声明和初始化37

4.3 使用变量39

4.4 多种变量42

4.5 系统变量43

4.6 随机:多样化为生活增加趣味性44

4.7 使用变量来创建Zoog46

4.8 坐标平移48

第5章 条件语句50

5.1 布尔表达式50

5.2 条件语句:if、else、else if51

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 长出胳膊的Zoog82

第二节课的项目84

第三节课 结构化

第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 重新整理Zoog100

第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 面向对象的Zoog116

第三节课的项目119

第四节课 重复性

第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个Zoog137

第四节课的项目139

第五节课 融会贯通

第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

第六节课 你周围的世界

第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

第七节课 显微镜下的像素

第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

第八节课 外面的世界

第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 XML305

18.9 使用Processing的XML类307

18.10 JSON312

18.11 JSONObject和JSONArray315

18.12 线程318

18.13 API320

第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

第九节课 制造噪音

第20章 声音344

20.1 基础的声音播放344

20.2 关于声音播放的更多内容348

20.3 声音合成350

20.4 声音分析353

20.5 声音阈值355

20.6 频谱分析358

第21章 导出361

21.1 导出至Web361

21.2 独立的应用程序362

21.3 高分辨PDF文件363

21.4 图像和saveFrame()367

21.5 录制视频367

第九节课的项目370

第十节课 超越Processing

第22章 高级的面向对象编程372

22.1 封装372

22.2 继承374

22.3 一个继承的示例:图形378

22.4 多态性381

22.5 重载384

第23章 Java386

23.1 揭开Processing魔法386

23.2 如果不使用Processing,代码看上去会是什么样子387

23.3 探索Java API389

23.4 其他有用的Java类:ArrayList390

23.5 其他有用的Java类:Rectangle396

23.6 异常(错误)处理398

23.7 Processing之外的Java400

附录A 常见错误402

......(更多)

读书文摘

Processing 是Logo和Desigh by Numbers的直系后代。

......(更多)

猜你喜欢

点击查看