按下鼠标时随机化图像 - 处理
Randomize image when mouse pressed - Processing
我正在尝试制作一个网格,其中每个单独的单元格都包含来自我的数据文件夹的一张随机图像。
到目前为止,我已经实现了在每个单元格中都有不同的图像,但它不会随机化
不是从文件夹的 600+
中随机挑选一张,而是按 1 to 27
.
的顺序放置每张图片
除此之外,我希望它在我每次用鼠标单击时随机化,而不是在关闭并再次播放时随机化。代码:
PImage img[];
int nPics;
int w;
int h;
int rand;
void setup(){
size(1500,500);
nPics=27;
img = new PImage[nPics];
w=width/9;
h=height/3;
for (int i = 0; i <nPics; i++) {
img[i] = loadImage("img_" +nf(i,3)+ ".jpg");
imageMode(CORNERS);
}
//rand = int(random(0,687));
//img[0]=loadImage("img_" + nf(rand,3)+ ".jpg");
}
void draw(){
background(0);
for(int i=0;i<nPics;i=i+3){
int col = i/3;
for(int row=0;row<3;row++)
image(img[i+row],col*w,row*h,(col+1)*w,(row+1)*h);
}
}
当您加载图像时,您使用的是 i
而不是 rand
。为了在您单击鼠标时随机化图像,您可以使用 mousePressed()
将不同的图像重新加载到您的数组中。
这应该有效:
PImage img[];
int nPics;
int w, h;
void loadImages(){
for (int i = 0; i < nPics; i++) {
img[i] = loadImage("img_"+ nf(int(random(0, 687)), 3) + ".jpg");
imageMode(CORNERS);
}
}
void setup() {
size(1500, 500);
nPics=27;
img = new PImage[nPics];
w=width/9;
h=height/3;
loadImages();
}
void mousePressed(){
loadImages();
}
void draw() {
background(0);
for (int i=0; i<nPics; i=i+3) {
int col = i/3;
for (int row=0; row<3; row++)
image(img[i+row], col*w, row*h, (col+1)*w, (row+1)*h);
}
}
我正在尝试制作一个网格,其中每个单独的单元格都包含来自我的数据文件夹的一张随机图像。
到目前为止,我已经实现了在每个单元格中都有不同的图像,但它不会随机化
不是从文件夹的
的顺序放置每张图片600+
中随机挑选一张,而是按1 to 27
.除此之外,我希望它在我每次用鼠标单击时随机化,而不是在关闭并再次播放时随机化。代码:
PImage img[];
int nPics;
int w;
int h;
int rand;
void setup(){
size(1500,500);
nPics=27;
img = new PImage[nPics];
w=width/9;
h=height/3;
for (int i = 0; i <nPics; i++) {
img[i] = loadImage("img_" +nf(i,3)+ ".jpg");
imageMode(CORNERS);
}
//rand = int(random(0,687));
//img[0]=loadImage("img_" + nf(rand,3)+ ".jpg");
}
void draw(){
background(0);
for(int i=0;i<nPics;i=i+3){
int col = i/3;
for(int row=0;row<3;row++)
image(img[i+row],col*w,row*h,(col+1)*w,(row+1)*h);
}
}
当您加载图像时,您使用的是 i
而不是 rand
。为了在您单击鼠标时随机化图像,您可以使用 mousePressed()
将不同的图像重新加载到您的数组中。
这应该有效:
PImage img[];
int nPics;
int w, h;
void loadImages(){
for (int i = 0; i < nPics; i++) {
img[i] = loadImage("img_"+ nf(int(random(0, 687)), 3) + ".jpg");
imageMode(CORNERS);
}
}
void setup() {
size(1500, 500);
nPics=27;
img = new PImage[nPics];
w=width/9;
h=height/3;
loadImages();
}
void mousePressed(){
loadImages();
}
void draw() {
background(0);
for (int i=0; i<nPics; i=i+3) {
int col = i/3;
for (int row=0; row<3; row++)
image(img[i+row], col*w, row*h, (col+1)*w, (row+1)*h);
}
}