杰瑞科技汇

Processing的Python模式怎么用?

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

Processing的Python模式怎么用?-图1
(图片来源网络,侵删)

它是什么?为什么需要它?

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()

这个函数在程序开始时只运行一次,通常在这里进行一些初始化设置,

Processing的Python模式怎么用?-图2
(图片来源网络,侵删)
  • 设置画布大小 (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)

代码解释:

Processing的Python模式怎么用?-图3
(图片来源网络,侵删)
  • 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 的圆。mouseXmouseY 也是内置变量,实时跟踪鼠标位置。

如何安装和使用 Python Mode

  1. 下载 Processing: 从 Processing 官网 下载并安装适合你操作系统的版本。
  2. 安装 Python: 确保你的电脑上已经安装了 Python (推荐 Python 3.x 版本),可以从 Python 官网 下载。
  3. 安装 Python Mode:
    • 打开 Processing IDE。
    • 点击顶部菜单的 Sketch -> Import Library... -> Add Library...
    • 在弹出的窗口中,搜索 "Python Mode"。
    • 找到并点击 "Python Mode for Processing",然后点击 "Install"。
  4. 切换模式:
    • 安装完成后,重启 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 绝对是一个值得学习的工具。

分享:
扫描分享到社交APP
上一篇
下一篇