1

我想画同心圆,所以我写了下面的代码

int radius = 30;

void setup(){
  size(1000,500);
  background(255,255,255); 
}

void draw(){
  ellipse(500,250,radius,radius);
  radius ++;
}

但结果不是同心圆,而是一个扩大的圆

为什么会出现这个结果?

4

2 回答 2

3

您的fill设置正在绘制以前的圈子。你想实现这个吗?

int radius = 30;
size(1000, 500);
background(255, 255, 255); 
noFill();

for (int i=0; i<100; i++) {
  ellipse(500, 250, radius, radius);
  radius += 10;
}
于 2013-08-31T13:15:01.100 回答
2

您看不到较小的圆圈,因为较大的圆圈位于顶部,隐藏了前一个圆圈。解决方案是使用带有 noFill() 的透明填充

int radius = 30;

void setup(){
  size(1000,500);
  background(255,255,255); 
}

void draw(){
  noFill();
  ellipse(500,250,radius,radius);
  radius ++;
}

使半径增量更大(10)您可以更好地看到圆圈

int radius = 30;

void setup(){
  size(1000,500);
  background(255,255,255); 
}

void draw(){
  noFill();
  ellipse(500,250,radius,radius);
  radius +=10;
}
于 2013-09-18T18:18:58.227 回答