用processing写一些粒子流动的代码
时间: 2023-08-13 13:06:29 浏览: 156
processing 粒子文字
好的,下面是一段流动粒子的代码,你可以在Processing中创建一个新文件,然后将以下代码粘贴进去运行:
```java
int num = 100; // 粒子数量
Particle[] particles = new Particle[num]; // 所有的粒子
float noiseScale = 0.01; // 噪声的缩放比例
float speed = 0.1; // 粒子的运动速度
void setup() {
size(600, 600);
colorMode(HSB, 360, 100, 100); // 使用色相、饱和度、亮度的颜色模式
for (int i = 0; i < num; i++) {
float x = random(width);
float y = random(height);
particles[i] = new Particle(x, y);
}
}
void draw() {
background(0);
for (int i = 0; i < num; i++) {
particles[i].move();
particles[i].display();
}
}
class Particle {
float x, y; // 粒子位置
float t; // 时间
float r; // 粒子半径
float hue; // 粒子颜色的色相
Particle(float x_, float y_) {
x = x_;
y = y_;
t = random(1000);
r = random(5, 15);
hue = map(x, 0, width, 0, 360);
}
void move() {
float nx = noise(x * noiseScale, t);
float ny = noise(y * noiseScale, t);
float dx = map(nx, 0, 1, -speed, speed);
float dy = map(ny, 0, 1, -speed, speed);
x += dx;
y += dy;
if (x < -r) x = width + r;
if (x > width + r) x = -r;
if (y < -r) y = height + r;
if (y > height + r) y = -r;
t += 0.01;
}
void display() {
noStroke();
fill(hue, 80, 100);
ellipse(x, y, r, r);
}
}
```
代码中定义了一个名为Particle的类,表示每一个粒子,包含其位置、半径、颜色等信息。在主函数中,首先定义了100个粒子,然后在循环中遍历所有的粒子,分别调用它们的move和display方法。在move方法中,通过调用noise函数来计算粒子的新位置,同时加上速度控制粒子的运动。在display方法中,使用颜色模式为HSB,根据粒子的位置计算它的颜色,然后绘制圆形粒子。
运行程序后,你会看到一些流动的、色彩斑斓的粒子。如果你想让粒子的颜色更加多样化,可以尝试使用不同的颜色模式或者修改粒子的颜色计算方式。
阅读全文