登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』Processing编程学习指南(原书第2版)

書城自編碼: 2968935
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]丹尼尔·希夫曼
國際書號(ISBN): 9787111558675
出版社: 机械工业出版社
出版日期: 2017-03-01
版次: 1 印次: 1
頁數/字數: 409页
書度/開本: 16开 釘裝: 平装

售價:NT$ 713

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
春日喜你
《 春日喜你 》

售價:NT$ 257.0
我们八月见
《 我们八月见 》

售價:NT$ 215.0
东线炼狱 : 德国反坦克兵的东线日记 : 1941—1942
《 东线炼狱 : 德国反坦克兵的东线日记 : 1941—1942 》

售價:NT$ 439.0
献给皇帝的礼物:Wedgwood瓷器王国与漫长的十八世纪
《 献给皇帝的礼物:Wedgwood瓷器王国与漫长的十八世纪 》

售價:NT$ 594.0
东京札记
《 东京札记 》

售價:NT$ 704.0
大学问·明代国家权力结构及运行机制
《 大学问·明代国家权力结构及运行机制 》

售價:NT$ 649.0
蹇蹇录:甲午战争外交秘录
《 蹇蹇录:甲午战争外交秘录 》

售價:NT$ 270.0
佛教文化十八讲
《 佛教文化十八讲 》

售價:NT$ 418.0

建議一齊購買:

+

NT$ 425
《 爱上Processing Steam&创客教育初学指南 全新彩图第2版 》
+

NT$ 368
《 Processing与Arduino互动编程 》
+

NT$ 338
《 数据结构与算法:Python语言描述 》
+

NT$ 822
《 代码本色:用编程模拟自然系统 》
+

NT$ 382
《 Processing互动编程 》
+

NT$ 573
《 动手玩转Scratch2.0编程—STEAM创新教育指南 》
內容簡介:
本书详细介绍了Processing编程的基本原理,全书分为十节课共23章,涵盖了创建前沿的图形应用程序例如互动艺术、实时视频处理和数据可视化所需要的基础知识。此外,作为一本实验风格的手册,书中精心挑选了部分高级技术进行详尽解释。可以让图形和网页设计师、艺术家及平面设计师快速熟悉Processing编程环境。
目錄
目 录
Learning Processing:A Beginner抯 Guide to Programming Images, Animation, and Interaction, Second Edition
出版者的话
译者序
致谢
前言
第一节课 开始
第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和draw25
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.
內容試閱
前 言Learning Processing:A Beginner抯 Guide to Programming Images, Animation, and Interaction, Second Edition本书讲的是什么本书讲了一个故事。一个关于解放与自由的故事,一个关于逐步了解计算机基础知识的故事。通过编写代码,可以创造属于你自己的多媒体设计,而不必拘泥于已有的软件工具。这个故事不仅仅是为科学家和工程师准备的,同时也是为你准备的。
本书是为谁准备的本书是为初学者准备的。如果你到目前从未编写过一行代码,那么本书对你来说再合适不过了。本书的前9章会由浅入深地讲授编程的基础知识。你并不需要任何编程的背景知识,只需要有操作电脑的基础知识——打开电脑、浏览网页、运行程序之类的知识就足够了。
由于本书使用Processing进行学习,因此对于那些在视觉领域学习或工作的人来说,它就更加适用了,例如图形设计、绘画、雕塑、建筑、电影、视频、插图、网页设计等。如果你从属于上述领域(在上述领域使用电脑),你很可能精通某个特定的设计软件(很可能不止一个软件),例如Photoshop、Illustrator、AutoCAD、Maya、After Effects等。而本书的意义在于使你摆脱(至少是部分摆脱)现有软件工具的束缚。如果可以创造自己的工具,而不是使用他人的软件,那你能创造出什么?如果你已经具有一定的编程经验,并且对Processing非常感兴趣,那么本书同样非常有用。本书的前面几章会为你提供一个速成的编程复习资料(和坚实的基础知识),本书的后面则是关于Processing编程的高级话题。
什么是Processing假设你正在学习CS 101(Computer Science 101)课程,其中可能讲到了Java编程语言的内容。下面是课程中第一个示例程序的输出结果:
一直以来,教授给程序员的基本命令行输出是:
1.文本输入(TEXT IN)→以文本的形式编写代码。
2.文本输出(TEXT OUT)→在命令行显示文本输出。
3.文本交互(TEXT INTERACTION)→用户可以在命令行输入文本,实现和程序的交互。
这个示例程序中的输出“Hello, World!”是一个经典段子,按照惯例,在各种编程语言教学中,“Hello, World”总是作为第一个程序的文本输出。这个示例程序最早出现在1974贝尔实验室的备忘录中,它是由Brian Kernighan撰写的,题名为《Programming in C: A Tutorial》。
学习Processing的优势在于:它自身强调一种更直观并且基于视觉反馈的编程环境,因而它更有助于艺术家和设计师学习编程。
1.文本输入(TEXT IN)→以文本的形式编写代码。
2.视觉输出(VISUALS OUT)→在窗口显示视觉输出。
3.鼠标交互(MOUSE INTERACTION)→用户通过鼠标和程序进行交互(在本书中你会看到更多例子)。
在Processing中,“Hello,World!”很可能如下图所示:
你好,图形!
虽然看上去是相当友好的设计,但是它并没有引人注目的感觉(在这里暂且忽略掉第3步:交互),“Hello, World!”也是这样。然而,这种方式所聚焦的理念(通过即时的视觉反馈来学习)却是截然不同的。
Processing并不是第一个遵循这种范式的语言。1967年,Daniel G. Bobrow、Wally Feurzeig和Seymour Papert 创造了Logo编程语言。一名程序员使用Logo语言编写了一个指令:在屏幕上用龟标生成图形和设计。尔后John Maeda在1999年设计了名为Design By Numbers的语言,该语言使视觉设计师和艺术家以简单、易用的句法来进行编程。
尽管这些语言具有令人惊叹的简洁性和创新性,但它们的功能非常有限。
Processing作为Logo和Design by Numbers的直系后代,于2001年诞生于麻省理工学院媒体实验室的美学与计算研究小组。它是由Casey Reas和Benjamin Fry设计的开源语言,当时他们是著名的计算机艺术家John Maeda的研究生。
Processing是一门开源编程语言,提供了对图片、动画和声音进行编程的环境。学生、艺术家、设计师、建筑师、研究人员和业余爱好者可以使用Processing进行学习、制作原型以及作为生产工具。你可以通过视觉化界面学习计算机编程的基础知识,或者作为软件速写本以及专业化的生产工具。除了该领域的其他相关专有软件之外,Processing为艺术家和设计师提供了一个新的选择。
—www.processing.org总之,Processing是非常令人惊叹的。首先,它是免费的,你不用花一分钱。其次,由于Processing基于Java编程语言(本书后面的章节将会对此做进一步探讨),因此它是一门十分实用的功能性语言,没有Logo或者Design by Numbers语言的限制,使用Processing几乎可以实现各种功能。最后,Processing是开源的。虽然在大多数情况下这并不会是本书内容的关键细节,可是,随着深入学习Processing,你就会意识到这种开源的理念是非常宝贵的。正是源于此,大量的开发者、教师和艺术家才会聚集到一起分享作品,贡献想法,进而大大拓展了Processing。
快速浏览一下processing.org网站,你就会发现这是一个充满勃勃生机、具有创造力的社区。在这里,初学者和专家通过公开交流创意和作品共享代码。尽管网站上有完整的参考文档,以及数量庞大的示例帮助你快速上手,但是并没有给真正的初学者提供一个系统的详尽教程。本书通过详尽地介绍编程基础知识和探索高级编程话题,可以帮助你参与到Processing这个社区网站,并做出你的贡献。
2012年,Processing基金会(Processing Foundation)成立,它旨在规范Processing软件的目标和理念:“在编程知识越来越重要的今天,努力让来自各行各业的人都能轻松学习编程。”为了实现这个目标,基金会大力支持几种不同语言的软件环境,其中包括Processing(Java)、p5.js(JavaScript)和Processing.py(Python)。虽然本书主要讨论Java框架的知识,但是我也极力向你推荐其他几个编程语言框架(如果你对构建网站感兴趣的话,尤其推荐p5.js)。我同样保留了本书所有示例的p5.js版本,你可以在http:learningprocessing.com上找到。
虽然没有Processing就不可能编写本书,但是你要知道,本书实质上并不仅仅是一本关于Processing的书。编写本书的初衷是教会你编程。我只是选择了使用Processing作为编程的学习环境,但本书所关注的是核心计算编程概念,这些概念将会在你以后学习其他编程语言和环境时,继续带领你前行。
难道我不应该学习在空白处填上你想学习的编程语言。你可能曾经听说某门编程语言“Flibideeflobidee”将会是未来前景最广阔的语言。你肯定听出来这是瞎编的,但是我敢肯定你的某个朋友曾经不断跟你讲某门语言是多么功能强大。它是如何使得编程变得如此容易。使用这门语言,5分钟之内你就能实现以前需要花费一天时间才能完成的程序。而且,它在Mac上、个人电脑上,甚至烤面包机上都能运行!你还可以用它编写一个陪你聊天的宠物!而且是用日语聊天!
事情是这样的。那个可以解决你所有问题的神奇编程语言根本不会存在。没有一门语言是完美的,Processing也有与生俱来的缺陷和不足。可是Processing是一个学习编程的很棒的起点。本书传授计算机编程的基本原理,不论是使用Processing、Java、JavaScript、C、Python还是其他语言,它们都会使你受益终身。
当然,对于某些项目来说,其他语言和环境可能更加适合。但Processing对于大部分的项目来说都是相当不错的选择,尤其是媒体相关和基于屏幕的任务。对Processing一个普遍的误解是它只适合于小打小闹,其实并不是这样的:许多人(包括我在内)都在项目自始至终使用Processing。Processing可以用来制作网络应用、博物馆和美术馆的艺术装置、公共空间的展览互动装置。比如,我曾经使用Processing在纽约市军队总部的大厅里制作一个实时的图像视频墙,它展示在120英尺×12英尺(没有错,是英尺!)大的屏幕上。
Processing不仅适合于项目制作,它还非常容易上手,它真的很棒。它是免费的、完全开源的软件;它的界面简洁;它是基于视觉的工具;它还非常有趣;它是面向对象的语言(后面会讲解)。此外,它能够在Mac端、PC端以及Linux机器上运行。
但是Processing的一个短板是对于网页的兼容性不足。2001年,在Processing刚诞生的时候,Java applet是将实时图形项目发布到网页的主要方法。可是到了2015年,Java applet已经不复存在。由Lauren McCarthy倡导的Processing基金会的p5.js项目(http:p5js.org)现在成为一个新的选择。关于这点,本书第21章将会具体探讨。
说了这么多,我就是想告诉你不要再去纠结应该选择哪门编程语言了,应该把精力集中到学习Processing编程的基本原理上。这方面的知识将有助于你超越本书的有限内容,帮助你学习其他任何编程语言。
把想法直接写在这本书上假如你是一名小说家或者剧本作家,你的写作时间仅仅是坐在计算机前打字的时间吗?大多数情况下并不是这样。或许是晚上躺在床上的时候,脑海中突然出现了一些想法;或许是坐在公园的长椅上惬意地喂着鸽子时,脑海中上演着一幕幕的对话;又或许是有一天晚上在酒吧,你在纸巾上快速勾勒出一个精彩的故事情节。
好吧,其实编写软件、程序、代码并没有什么不同。只是由于编程工作本质上和计算机紧紧捆绑在一起,因此你常常会忘记这一点。但有机会的话,你一定要让你的头脑发散、畅想。在远离办公桌、电脑的时候去头脑风暴一些奇思妙想。就我个人而言,我常常在慢跑的时候完成了编程工作最棒的构思。
当然,使用电脑实际输入代码的部分也是非常重要的。我的意思是,虽然不可能仅仅通过舒舒服服地躺在游泳池里就能完成一个复杂的任务,但如果只是每天伏案工作,面对着刺眼的显示器,这是远远不够的。
所以,随时在书上做笔记就是一个好的方法,这样能锻炼你离开键盘后思考代码的能力。我已在本书中包含了许多填空形式的练习题。(这些练习题的所有答案都可以在本书配套网站http:learningprocessing.com上找到,方便你检查自己的答案。)充分利用本书的空白处吧!每当你有灵感和想法的时候,就迅速把它们写到书上。把本书当成一个练习册或者速写本。(当然,你也可以使用自己的速写本。)最后我建议,你要花一半的时间在不用电脑的时候阅读本书,另一半时间则是坐在计算机旁,实践本书中的示例。
我应该如何阅读本书最好是按照章节顺序阅读。第9章之后,你就可以轻松地随便翻看本书了,但是前面几章,建议你按照顺序来读。
本书按照先后顺序教你编程。更高级的阅读方式则是:根据自己的需要跳读,将本书作为一个参考文档来使用。本书的前一半内容都是首先讲解一个示例,然后一步一步分解这个示例中所涵盖的知识点。除此以外,计算机编程的基本原理是按照一个特定的顺序来逐步呈现的,这个顺序是多年来在纽约大学帝势艺术学院的互动电信项目中许多同学反复摸索之后的结果(http:itp.nyu.edu)。
我将本书所有23章内容分为十节课。前面9章介绍了计算机图形学,涵盖了计算机编程的基本原理。第10~12章则暂停讲授新知识,转向讨论如何用增量方法(incremental approach)构建更加大型的项目。第13~23章继续拓展基础知识,并且展示一系列更加高级的话题,涉及3D、直播视频和数据可视化等。
这些内容分为容易理解的几个部分。每节课的末尾,我都准备了一个项目,建议你从单纯阅读本书的过程中转换下思维,尝试将该节课中的全部内容整合为一个完整的项目。我也为这个项目提供了一些建议,但它们真的仅仅是建议而已。
这是一本教科书吗本书既可用作编程课程导论的教科书,也可以用来自学。
这里,我要再次提及:本书的基本结构直接来自于ITP的“计算媒体导论”课程。如果没有同事和这门课数百名学生的帮助(我多么希望我可以把他们所有人的名字都写在这里),本书是不可能完成的。
坦白讲,本书的内容要比针对初学者的一学期课程要多一些。本书共计23章,我曾经在课堂上详细讲过其中18章内容。可是,不论你是否将本书作为课程教材或是自学读物,你完全可以在几个月里消化本书的知识。当然,你也可以读得更快,但是如果你要在Processing中测试本书的代码,并且完成课后项目,确实是需要一段时间的。那些所谓“10天上10节课就能学会编程”的书看似非常吸引人,但实际并不现实。
下面是一个用14周时间学完本书内容的参考计划。
第1周第一节课:第1~3章第2周第二节课:第4~6章第3周第三节课:第7~8章第4周第四节课:第9章第5周第五节课:第10~11章第6周期中!(继续第五节课:第12章)第7周第六节课:第13~14章第8周第七节课:第15~16章第9周第八节课:第17~19章第10周第九节课:第20~21章第11周第十节课:第22~23章第12周最终项目研讨会第13周最终项目研讨会第14周最终项目展示本书有测验题目吗师傅领进门,修行在个人。真正的窍门在于练习,练习,练习。假设你现在是10岁的孩子,在学习小提琴课程,老师肯定会跟你讲每天都要练习。同理,要完成本书提供的练习,如果可能的话每天都要练习。
作为初学者,在学习的过程中,一开始可能并不会提出自己的想法,而这也就是那些练习存在的目的。不过,如果你有自己开发项目的想法,那就跳过练习,尝试去实现它。
大多数练习都是小的演练,几分钟就能完成。有一些则会稍难,可能需要一小时才能完成。在整个学习过程中,有时候可能要暂停学习新知识,花上几小时、一天甚至一周时间来完成一个项目,这也会让你收益颇丰。正如我之前提到的,这就是我这样安排课程结构的用意。我建议你在每节课结束后,暂停阅读,自己用Processing做一些小项目、小练习。本书每节课后面都提供给你项目的建议。
本书所有练习的答案都可以在其配套网站上找到。
本书有配套网站吗本书的网址是:http:learningprocessing.com。
网站上提供了以下内容:
本书所有练习的答案本书所有代码的可下载版本本书所有内容的配套教学视频书中示例的在线版本(通过p5.js运行)本书额外的提示和教程问题以及评论本书中的许多示例原本是彩色的,并且具有动态特效,因此书中的黑白和静态屏幕截图无法描绘示例的全部效果。当你阅读时,你可以通过浏览器(使用p5.js)查看在线示例,或者下载到你的电脑上在本地运行。
本书中示例的源代码同样可以在Learning Processing github库(https:github.comshiffmanLearningProcessing)上找到。我还使用了github issues(https:github.comshiffmanLearning-Processingissues)作为系统工具来发现本书中错误,所以如果你发现本书中有任何错误,请在那里给予反馈。你有可能会在本书示例和在线示例之间发现些许差别,但是它们的核心概念是相同的。(例如,为了适合本书的排版布局,书中的示例是以200×200的像素大小呈现的,而在线示例的尺寸可能会相对大一些。)本书的配套网站并不能取代Processing官方网站http:processing.org。官方网站提供了Processing参考文档和更多的示例,此外,还有一个活跃的论坛。
一步一个脚印增量开发的理念在你开始学习编程之前,还有一个方法需要和你讨论一下。它是我学习编程的一个重要驱动力,并且也对本书的编写风格产生了巨大影响。这个方法是由我之前的一个教授提出来的,叫做“增量开发的理念”(philosophy of incremental development)。更通俗地讲,就是“一步一个脚印的方法”(one-step-at-a-time approach)。
无论你是一个新手还是

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.