float[][] pre;
float[][] cur;
int cols, rows;
float thre = 0.995f;
int gap = 10;
int count = 0;
void settings() {
size(800, 600);
rows = width;
cols = height;
pre = new float[rows][cols];
cur = new float[rows][cols];
}
void setup() {
pre[rows / 2][cols / 2] = 255;
pre[rows / 2][cols / 2] = 255;
}
void mouseDragged() {
pre[mouseX ][mouseY ] = 255;
cur[mouseX][mouseY ] = 255;
}
void mouseClicked() {
for (int i=-6; i<6; i++) {
pre[mouseX +i][mouseY +i] = 255;
cur[mouseX+i][mouseY+i ] = 255;
}
// System.out.println("clicked");
}
public void draw() {
frameRate(5);
background(255);
// colorMode(HSB);
loadPixels();
for (int i = 1; i < rows - 1; i++) {
for (int j = 1; j < cols - 1; j++) {
cur[i][j] = (pre[i - 1][j] + pre[i + 1][j] + pre[i][j - 1] + pre[i][j + 1]) / 2 - cur[i][j];
cur[i][j] = cur[i][j] * thre;
int index = j * rows + i;
// int index = i * cols + j;
pixels[index] = color(255,128 , cur[i][j]);
}
}
updatePixels();
float[][] temp = pre;
pre = cur;
cur = temp;
// count++;
}
processing 水波纹
最新推荐文章于 2025-05-04 22:46:35 发布