Python Mode for Processing 是一个为 Processing 开发环境(IDE)提供的模式,它允许你使用 Python 语言来创作视觉艺术、设计原型和进行数据可视化,你可以把它想象成是 Processing 的“Python 语言包”。

它是什么?为什么需要它?
Processing 最初是用 Java 语言创建的,Java 的语法对于很多初学者,尤其是艺术家和设计师来说,可能有些复杂和繁琐,Python 以其简洁、易读的语法而闻名,非常适合快速实现创意。
Python Mode 的出现,就是为了将 Processing 强大的图形库和交互功能与 Python 的简洁优雅结合起来,它让你能够:
- 用更少的代码做更多的事:Python 的语法非常简洁,减少了代码的“噪音”。
- 更快的创意迭代:代码写起来快,调试也相对容易,让你能更专注于创意本身。
- 无缝利用 Python 生态:你可以轻松地在 Processing 草图中使用 Python 强大的库,如
numpy(科学计算)、Pillow(图像处理)、pandas(数据分析)、requests(网络请求)等,极大地扩展了 Processing 的能力。 - 更友好的学习曲线:对于已经了解 Python 学习 Processing 的绘图和交互概念会非常快。
核心概念:setup() 和 draw()
Python Mode 的工作方式和原生 Java Mode 非常相似,主要围绕两个核心函数:
setup()
这个函数在程序开始时只运行一次,通常在这里进行一些初始化设置,

- 设置画布大小 (
size()) - 设置背景颜色 (
background()) - 加载图片或字体
- 初始化变量
def setup():
# 设置画布大小为 800x600 像素
size(800, 600)
# 设置背景为白色
background(255)
# 设置文本对齐方式为居中
textAlign(CENTER, CENTER)
draw()
这个函数会以默认每秒 60 次 的频率持续循环运行,这是 Processing 动画和交互的核心,你会:
- 绘制图形
- 更新对象的位置
- 检测鼠标或键盘的交互
def draw():
# 每一帧都将背景设置为半透明的黑色,产生拖尾效果
background(0, 10)
# 用随机的颜色画一个圆,圆心跟随鼠标
fill(random(255), random(255), random(255))
noStroke()
circle(mouseX, mouseY, 50)
注意:在 Python Mode 中,函数名和括号都使用英文半角符号,并且代码的缩进(使用空格或 Tab)非常重要,因为它决定了代码块的结构。
一个完整的入门示例:跟随鼠标的彩色圆圈
这个例子结合了 setup() 和 draw(),是理解 Processing 动画原理的经典入门程序。
# 1. 初始化设置 (只运行一次)
def setup():
# 设置画布大小
size(600, 400)
# 设置背景为黑色
background(0)
# 关闭边框
noStroke()
# 2. 循环绘制 (每秒运行60次)
def draw():
# 设置填充颜色为 HSB 模式
# H (色相) 随时间变化, S (饱和度) 和 B (亮度) 为100%
colorMode(HSB)
fill(frameCount % 360, 100, 100)
# 在鼠标位置画一个直径为 80 的圆
circle(mouseX, mouseY, 80)
代码解释:

size(600, 400): 创建一个 600x400 像素的画布。background(0): 将背景设为黑色,注意,这个函数只在setup()中调用了一次,所以背景是纯黑的。noStroke(): 绘制图形时不描边。colorMode(HSB): 切换到 HSB(色相、饱和度、亮度)颜色模式,这比 RGB 更适合制作渐变色彩。fill(...): 设置填充颜色。frameCount是一个内置变量,记录了draw()函数运行的次数。frameCount % 360会让色相值在 0 到 359 之间循环,从而产生平滑的颜色过渡。circle(mouseX, mouseY, 80): 在鼠标的 X 和 Y 坐标位置画一个直径为 80 的圆。mouseX和mouseY也是内置变量,实时跟踪鼠标位置。
如何安装和使用 Python Mode
- 下载 Processing: 从 Processing 官网 下载并安装适合你操作系统的版本。
- 安装 Python: 确保你的电脑上已经安装了 Python (推荐 Python 3.x 版本),可以从 Python 官网 下载。
- 安装 Python Mode:
- 打开 Processing IDE。
- 点击顶部菜单的 Sketch -> Import Library... -> Add Library...。
- 在弹出的窗口中,搜索 "Python Mode"。
- 找到并点击 "Python Mode for Processing",然后点击 "Install"。
- 切换模式:
- 安装完成后,重启 Processing。
- 在 IDE 的右上角,你会看到一个语言选择器,点击它,然后选择 Python。
- 你就可以在编辑器中编写 Python 代码了!
Python Mode 与原生 Java Mode 的主要区别
| 特性 | Python Mode | Java Mode |
|---|---|---|
| 语法 | 使用 Python 语法,简洁,依赖缩进。 | 使用 Java 语法,更冗长,需要分号和大括号。 |
| 变量类型 | 动态类型 (e.g., x = 10)。 |
静态类型 (e.g., int x = 10;)。 |
| 库导入 | 使用 import (e.g., import numpy as np)。 |
使用 import (e.g., import numpy.*;)。 |
| 函数定义 | def setup(): |
void setup() { |
| 代码块 | 冒号 + 缩进 | 大括号 |
| 内置函数 | 大部分相同,但命名可能略有不同(如 PVector 在 Python 中是 PVector,但用法可能更 Pythonic)。 |
标准的 Processing 函数。 |
进阶应用:结合 Python 生态
Python Mode 的真正威力在于它能轻松调用 Python 的第三方库。
示例:使用 numpy 生成动态噪声
import numpy as np
# 创建一个 numpy 数组来存储噪声值
# 100个点,范围在0到1之间
noise_scale = 0.02
noise_values = np.zeros(100)
def setup():
size(800, 200)
noStroke()
def draw():
# 更新噪声值
# 使用 numpy 的随机数生成器创建平滑的噪声
noise_values[:] = np.random.rand(100) * 255
# 绘制
background(0)
for i in range(len(noise_values)):
# 根据噪声值绘制一条竖线
stroke(noise_values[i])
line(i * width / len(noise_values), height,
i * width / len(noise_values), height - noise_values[i])
这个例子展示了如何在 Processing 中利用 numpy 高效地处理和可视化数据,这是纯 Processing 模式难以做到的。
Python Mode for Processing 是一个强大的工具,它为艺术家、设计师和创意编程爱好者提供了一个更友好、更高效的创作平台,它保留了 Processing 易于上手、功能强大的图形编程能力,同时又借助 Python 的简洁语法和庞大的生态系统,让创意的实现变得前所未有的简单和灵活,如果你对视觉艺术和编程感兴趣,Python Mode 绝对是一个值得学习的工具。
