具体描述
The visual arts are rapidly changing as media moves into the web, mobile devices, and architecture. When designers and artists learn the basics of writing software, they develop a new form of literacy that enables them to create new media for the present, and to imagine future media that are beyond the capacities of current software tools. This book introduces this new literacy by teaching computer programming within the context of the visual arts. It offers a comprehensive reference and text for Processing (www.processing.org), an open-source programming language that can be used by students, artists, designers, architects, researchers, and anyone who wants to program images, animation, and interactivity. Written by Processing’s cofounders, the book offers a definitive reference for students and professionals. Tutorial chapters make up the bulk of the book; advanced professional projects from such domains as animation, performance, and installation are discussed in interviews with their creators.This second edition has been thoroughly updated. It is the first book to offer in-depth coverage of Processing 2.0 and 3.0, and all examples have been updated for the new syntax. Every chapter has been revised, and new chapters introduce new ways to work with data and geometry. New “synthesis” chapters offer discussion and worked examples of such topics as sketching with code, modularity, and algorithms. New interviews have been added that cover a wider range of projects. “Extension” chapters are now offered online so they can be updated to keep pace with technological developments in such fields as computer vision and electronics.
现代编程思维与创意实践的深度探索 《数字媒介中的逻辑与美学:面向创作者的编程基础与应用》 图书简介 本书旨在为数字艺术、平面设计、交互媒体以及跨学科创意领域的实践者提供一套全面且深入的编程思维训练与技术实践指南。我们相信,在当今高度数字化的创作环境中,理解底层逻辑的运作机制,是实现突破性创意的关键。本书并非传统意义上的技术手册,而是一本致力于培养“代码即表达工具”这一观念的深度读物。 全书结构围绕“逻辑构建”、“数据可视化与形态生成”、“交互与响应式系统设计”三大核心板块展开,辅以大量的案例分析与项目实战,引导读者从零开始,系统地掌握编程在创意领域中的应用潜力。 --- 第一部分:构建数字世界的基石——编程思维与基础结构 本部分着重于打磨创作者的底层逻辑框架,帮助读者建立起与机器有效沟通的思维模式。我们摒弃了冗长枯燥的计算机科学术语,转而使用与视觉感知和空间想象高度相关的比喻来阐述核心概念。 1. 逻辑的颗粒度:从概念到指令 本章深入探讨了“算法”在创意流程中的角色。我们不将算法视为抽象公式,而是将其视为“可重复的、精确的、受控的创造步骤”。内容涵盖: 布尔代数与决策树在布局控制中的应用: 如何利用“是/否”逻辑来控制元素的出现、消失与状态切换,例如,根据鼠标位置动态改变图形的透明度或色彩饱和度。 流程控制的叙事性: 讲解 `if/else`、`for` 循环和 `while` 循环如何被应用于叙事结构,创建具有节奏感和层次感的视觉序列,如同电影的分镜脚本。 函数作为“微型引擎”: 将函数视为可封装、可复用的“创意模块”。重点解析如何封装复杂的几何变换(如螺旋线、斐波那契数列曲线)为一个简洁的调用,从而解放设计思考,专注于更高层面的结构设计。 2. 数据结构:组织视觉的内在骨架 对于视觉创作者而言,数据不仅仅是数字,它们是点、线、面、颜色和运动的载体。本章强调数据结构的组织方式对最终视觉效果的决定性影响。 数组与矩阵: 如何利用一维和二维数组来高效管理像素网格、颜色板以及多层次的结构叠加。重点分析矩阵变换(平移、旋转、缩放)在三维或伪三维空间构建中的效率优势。 对象与类的抽象化: 引导读者使用面向对象的方法来定义“设计实体”。例如,定义一个名为“画笔”的对象,它包含颜色、粗细、纹理等属性,并拥有“绘制”、“擦除”等行为。这使得复杂的组件管理变得清晰可控。 栈与队列在时间轴上的应用: 探讨如何利用栈(后进先出)和队列(先进先出)来管理历史状态或动画帧的序列,实现精准的“撤销/重做”功能或时间步进模拟。 --- 第二部分:形态的生成与动态的模拟 本部分是本书的核心实践区域,专注于如何利用代码来超越传统工具的限制,生成复杂、有机或数学驱动的视觉形态。 3. 数学与形态学:从公式到美感 本章侧重于介绍驱动当代数字艺术和生成设计(Generative Design)的核心数学工具。 三角函数与周期性运动: 深入解析 `sin()` 和 `cos()` 如何被用于模拟自然界中的波动、涟漪、摆动和有机生长模式。案例涉及参数化波浪网格和复眼结构。 噪点函数与有机纹理的诞生: 详细介绍 Perlin Noise 或 Simplex Noise 等连续噪点函数的原理及其在生成伪随机但视觉上连贯的纹理、地形和流体模拟中的应用。重点讨论如何通过调整频率和振幅来控制“粗糙度”和“细节层次”。 分形几何与自相似性: 探索基于迭代的几何结构(如曼德布罗特集、谢尔宾斯基三角形),展示如何通过简单的迭代规则来创建无限复杂的视觉结构,体现大自然中的尺度不变性。 4. 物理世界的代码模拟:运动与力场的控制 本章超越了静态图像,进入动态模拟领域,使创作者能够“设计物理定律”。 粒子系统: 系统的构建与参数调优。如何定义粒子的生命周期、速度、加速度、颜色衰减,以及碰撞检测,用于模拟火焰、烟雾、星尘或群体行为。 力场与向量场: 引入向量(Vector)的概念,将其视为空间中的“方向和强度指示器”。通过定义引力场、斥力场或涡流场,引导粒子进行复杂的、非线性的运动路径,实现“牵引”或“排斥”效果。 反应扩散系统基础: 简要介绍基于化学反应的模拟基础,例如图灵模式(Turing Patterns),用于生成类似生物斑点、条纹或不规则晶体结构,探讨其在表面纹理设计中的应用。 --- 第三部分:构建沉浸式体验——交互、数据与环境集成 本书的最后一部分将焦点从单屏创作转向更广泛的“环境”与“反馈”系统,探讨代码在构建真实世界中的连接和响应能力。 5. 实时反馈与用户驱动的界面 本章关注如何让作品“感知”并“回应”外部输入,从而创造出动态和个性化的体验。 事件驱动编程模型: 彻底理解“监听器”的概念,即程序如何被动等待外部事件(如鼠标点击、键盘输入、触摸、传感器数据)的发生,并立即执行相应的响应代码。 数据流与状态管理: 探讨如何有效地追踪和管理程序在不同时间点的“状态”,并确保状态的改变能平滑、逻辑清晰地反映在视觉输出上。 传感器输入与环境交互(基础篇): 简要介绍如何接收来自网络、音频输入(如麦克风的音量或频率分析)作为参数,驱动视觉元素的实时变化,实现“声音可视化”或“环境数据映射”。 6. 创意项目的高级组织与部署 本章侧重于将零散的知识点整合到可维护、可扩展的创意项目中。 模块化与代码重用: 强调在大型项目中拆分功能模块的重要性,避免“意大利面条式代码”。学习如何创建自己的“创意工具库”。 性能考量与优化: 介绍在处理大量图形元素或复杂计算时,如何识别性能瓶颈(如不必要的重绘或冗余计算),并应用基本的优化策略,以确保作品在不同设备上都能流畅运行。 跨平台思维: 讨论将创意代码从单一环境迁移到不同输出媒介(如网页、桌面应用或投影系统)时需要考虑的适配性问题和兼容性策略。 目标读者: 本书面向所有希望超越传统软件预设功能、掌握生成式艺术(Generative Art)、数据驱动设计(Data-Driven Design)或创造高度定制化数字体验的设计师、艺术家、建筑师、互动媒体专业学生及从业者。它要求读者具备基础的逻辑推理能力,但无需任何预先的编程经验。通过本书的学习,读者将获得的不只是技术知识,更是一种驾驭复杂性、将抽象概念转化为具象美学的强大能力。