首页
/ Processing核心API详解:图形绘制与图像处理全指南

Processing核心API详解:图形绘制与图像处理全指南

2025-07-07 06:12:49作者:乔或婵

Processing作为一款开源的创意编程语言和环境,其核心API提供了丰富的图形绘制和图像处理功能。本文将深入解析Processing的核心API,帮助开发者更好地理解和使用这些功能。

一、基础图形绘制

1. 基本形状绘制

Processing提供了多种基本形状的绘制方法:

  • point(x, y) / point(x, y, z):绘制点
  • line(x1, y1, x2, y2) / line(x1, y1, z1, x2, y2, z2):绘制直线
  • triangle(x1, y1, x2, y2, x3, y3):绘制三角形
  • quad(x1, y1, x2, y2, x3, y3, x4, y4):绘制四边形

2. 矩形与椭圆绘制

矩形和椭圆支持多种绘制模式:

rectMode(mode);  // 设置矩形绘制模式
rect(a, b, c, d);  // 绘制矩形

ellipseMode(mode);  // 设置椭圆绘制模式
ellipse(a, b, c, d);  // 绘制椭圆

模式参数可以是:

  • CORNER:以左上角为基准
  • CORNERS:以两个对角点定义
  • CENTER:以中心点为基准
  • RADIUS:以中心点和半径定义

3. 曲线绘制

Processing提供了贝塞尔曲线和样条曲线的支持:

// 贝塞尔曲线
bezier(x1, y1, x2, y2, x3, y3, x4, y4);
bezierPoint(a, b, c, d, t);  // 计算贝塞尔曲线上的点
bezierTangent(a, b, c, d, t);  // 计算贝塞尔曲线的切线

// 样条曲线
curve(x1, y1, x2, y2, x3, y3, x4, y4);
curvePoint(a, b, c, d, t);  // 计算样条曲线上的点
curveTangent(a, b, c, d, t);  // 计算样条曲线的切线

二、3D图形绘制

1. 基本3D形状

Processing支持多种3D基本形状:

box(size);  // 立方体
box(w, h, d);  // 长方体

sphereDetail(res);  // 设置球体细节
sphere(r);  // 球体

2. 3D变换

3D变换包括平移、旋转和缩放:

translate(tx, ty, tz);  // 平移
rotateX(angle);  // 绕X轴旋转
rotateY(angle);  // 绕Y轴旋转
rotateZ(angle);  // 绕Z轴旋转
scale(x, y, z);  // 缩放

3. 相机与投影

Processing提供了完整的3D相机系统:

beginCamera();  // 开始自定义相机
endCamera();  // 结束自定义相机
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);  // 设置相机

ortho();  // 正交投影
perspective(fov, aspect, near, far);  // 透视投影

三、图像处理

1. 图像加载与显示

PImage img = loadImage("example.jpg");  // 加载图像
image(img, x, y);  // 显示图像
imageMode(mode);  // 设置图像显示模式

2. 像素操作

Processing提供了直接的像素级操作:

loadPixels();  // 加载像素数据
updatePixels();  // 更新像素数据
color c = get(x, y);  // 获取像素颜色
set(x, y, color);  // 设置像素颜色

3. 图像处理

内置多种图像处理功能:

filter(kind);  // 应用滤镜
filter(kind, param);  // 带参数的滤镜

blend(src, sx, sy, sw, sh, dx, dy, dw, dh, mode);  // 图像混合
mask(alpha);  // 图像遮罩

四、颜色与样式

1. 颜色设置

colorMode(mode);  // 设置颜色模式(RGB/HSB)
fill(color);  // 填充颜色
stroke(color);  // 描边颜色
background(color);  // 背景颜色

2. 颜色计算

lerpColor(c1, c2, amt);  // 颜色插值
alpha(color);  // 获取alpha分量
red(color);  // 获取红色分量
hue(color);  // 获取色相(HSB模式)

3. 样式设置

strokeWeight(weight);  // 设置描边粗细
strokeCap(cap);  // 设置描边端点样式
strokeJoin(join);  // 设置描边连接样式
smooth();  // 开启抗锯齿

五、高级功能

1. 自定义形状

beginShape();  // 开始自定义形状
vertex(x, y);  // 添加顶点
endShape();  // 结束自定义形状

2. 矩阵操作

pushMatrix();  // 保存当前矩阵
popMatrix();  // 恢复保存的矩阵
applyMatrix();  // 应用变换矩阵

3. 光照系统

lights();  // 启用默认光照
directionalLight(r, g, b, nx, ny, nz);  // 方向光
pointLight(r, g, b, x, y, z);  // 点光源
ambientLight(r, g, b);  // 环境光

六、性能优化

1. 绘图控制

beginDraw();  // 开始绘图
endDraw();  // 结束绘图
flush();  // 强制刷新绘图缓冲区

2. 资源管理

dispose();  // 释放资源
allocate();  // 分配资源

通过掌握这些核心API,开发者可以在Processing中实现各种复杂的图形效果和交互体验。Processing的设计哲学是让创意编程变得简单直观,同时又不失强大功能。无论是2D图形、3D场景还是图像处理,Processing都提供了简洁而高效的解决方案。