我需要一个for循环来在给定范围(1到5)之间随机增加。 我已经尝试了以下代码集,但似乎无法正常工作。该代码是为基于Java的处理编写的。我的意图是创建一个画布,该画布具有与背景不同颜色的随机点,以获取纸张一样的纹理。
float x = 0;
float y = 0;
float xRandom = x + random(1, 5);
float yRandom = y + random(1, 5);
void setup() {
size(800, 800);
}
void draw() {
background(#e8dacf);
for(float x; x <= width; xRandom){
for (float y ; y <= height; yRandom){
fill(#f0e2d7);
stroke(#f0e2d7);
point(x, y);
}
}
答案 0 :(得分:1)
如果要按随机值前进,则必须随机增加控制变量x
和y
:
for (float x=0; x <= width; x += random(1, 5)){
for (float y=0; y <= height; y += random(1, 5)){
fill(#f0e2d7);
stroke(#f0e2d7);
point(x, y);
}
}
请注意,在这种分布情况下,点与列对齐,因为x坐标在内部循环迭代时保持不变。
对于完全随机的分布,您必须在单个循环中计算随机坐标。例如:
int noPts = width * height / 9;
for (int i = 0; i < noPts; ++i ){
fill(#f0e2d7);
stroke(#f0e2d7);
point(random(1, width-1), random(1, height-1));
}
当然,有些坐标可能必须相同,但在如此数量的点上应该不会引起注意。