如何在Processing中使用for循环组织多行的省略号

时间:2015-10-16 22:10:06

标签: arrays for-loop processing

我试图在Processing中创建一组半径不同的椭圆。我创建了一个半径值数组,并使用for循环创建了一系列具有不同半径的椭圆。

有八个椭圆以线性方式排列。我没有将椭圆保持在一行中,而是希望将它们放在两行或三行中。我怎样才能做到这一点?在这种情况下,for循环的本质是什么?

float [] r = {10,20,30,50,30,22,16,12};


void setup(){
size(400,400);
smooth();
}

void draw(){
background(225);

for(int i = 0;i<r.length;i++){

  ellipse(50+i*30,50,r[i],r[i]);

}

}

1 个答案:

答案 0 :(得分:0)

我建议拿出一张纸和一支铅笔,并举几个例子。每个圈子的x,y位置是多少?每个圆圈的索引是多少?在你自己注意到这种模式之前,你可能不会理解任何答案。

无论如何,您可以使用单个for循环执行此操作:使用modulo operator计算位置,和/或将y位置存储在您递增的变量中。

但是使用嵌套的for循环可能更容易:

float [] r = {
  10, 20, 30, 50, 30, 22, 16, 12
};

void setup() {
  size(400, 400);
  smooth();
}

void draw() {
  background(225);

  for (int row = 0; row < 2; row++) {
    for (int column = 0; column < 4; column++) {
      int index = row*4 + column;
      ellipse(50+column*30, 50+row*50, r[index], r[index]);
    }
  }
}