p5.js 创意编程:生成艺术、着色器、交互式、3D 效果。
当用户要求:p5.js 草图、创意编程、生成艺术、交互式可视化、canvas 动画、基于浏览器的视觉艺术、数据可视化、着色器效果时使用。
| 模式 | 输入 | 输出 |
|---|---|---|
| 生成艺术 | 种子 / 参数 | 程序化视觉组合 |
| 数据可视化 | 数据集 / API | 交互式图表、图形 |
| 交互体验 | 无 | 鼠标/键盘/触摸驱动草图 |
| 动画 / 动态图形 | 时间线 | 定时序列、动态排版 |
| 3D 场景 | 概念描述 | WebGL 几何、灯光、相机 |
| 音频响应式 | 音频文件 / 麦克风 | 声音驱动的生成视觉 |
每个项目单个自包含 HTML 文件。无需构建步骤。
| 层 | 工具 | 用途 |
|---|---|---|
| 核心 | p5.js 1.11.3 (CDN) | Canvas 渲染、数学、变换 |
| 3D | p5.js WebGL 模式 | 3D 几何、相机、灯光 |
| 音频 | p5.sound.js | FFT 分析、振幅、麦克风输入 |
| 导出 | saveCanvas() / saveGif() | PNG、GIF、帧序列输出 |
概念 → 设计 → 编码 → 预览 → 导出 → 验证
let particles = [];
function setup() {
createCanvas(800, 600);
for (let i = 0; i < 100; i++) {
particles.push(new Particle());
}
}
function draw() {
background(20);
for (let p of particles) {
p.update();
p.display();
}
}
使用 HSB 模式进行创意编程:
colorMode(HSB, 360, 100, 100);
let c = color(180, 80, 90); // 青色
let x = noise(frameCount * 0.01) * width;
使用 createGraphics() 创建离屏缓冲区:
let bg = createGraphics(width, height);
bg.background(0);
image(bg, 0, 0);
评论区