Java 在处理过程中创建彼此内部的无限圆

Java 在处理过程中创建彼此内部的无限圆,java,processing,Java,Processing,我正在尝试创建一些类似于此图像的trippy“动画” 我可以用蛮力将另一个圆放入圆中。然而,我非常确信,使用“while”或“for”有一种更简单的方法。我对编码相当陌生,所以我不知道应该使用哪种逻辑 下面是我的暴力强制代码 int m = millis(); void setup(){ size(1136,936); } void draw(){ ellipseMode(CENTER); frameRate(1.3); background(255);

我正在尝试创建一些类似于此图像的trippy“动画”

我可以用蛮力将另一个圆放入圆中。然而,我非常确信,使用“while”或“for”有一种更简单的方法。我对编码相当陌生,所以我不知道应该使用哪种逻辑

下面是我的暴力强制代码

int m = millis();

void setup(){
  
 size(1136,936);
 
}

void draw(){
  

  ellipseMode(CENTER);
  frameRate(1.3);
  background(255);
  
  
 if (millis() > m + 1000){
  for (int diameter = 0; diameter < 500; diameter = diameter+1) {
  float r1 = random(1,1000);
  float r2 = random(1,900);
  fill(255);
  circle(r1, r2, diameter);
  fill(0);
  circle(r1,r2,diameter/2);

}
 
}

}
int m=millis();
无效设置(){
规模(1136936);
}
作废提款(){
ellipseMode(中心);
帧率(1.3);
背景(255);
如果(毫秒()>m+1000){
用于(内部直径=0;直径<500;直径=直径+1){
浮点数r1=随机数(11000);
浮动r2=随机(1900);
填充(255);
圆(r1,r2,直径);
填充(0);
圆(r1,r2,直径/2);
}
}
}

谢谢

这与您的示例非常接近(基于原始代码):

int m=millis();
无效设置(){
规模(1136936);
}
int colors[]={0,255};
作废提款(){
ellipseMode(中心);
//帧率(1.3);
背景(255);
如果(毫秒()>m+1000){
对于(int i=0;i<500;i=i+1){
浮动x=随机(11000);
浮动y=随机(1900);
浮动半径=300;
浮动增量=30;
int计数器=0;
而(半径>=增量){
填充(颜色[计数器%颜色.长度]);
椭圆(x,y,半径,半径);
计数器++;
半径-=三角洲;
}
}
}
}
int m = millis();

void setup(){
 size(1136,936);
}

int colors[] = { 0, 255 };

void draw(){
  ellipseMode(CENTER);
  //frameRate(1.3);
  background(255);

   if (millis() > m + 1000) {
    for (int i = 0; i < 500; i = i+1) {
      float x = random(1,1000);
      float y = random(1,900);
      float radius = 300;
      float delta = 30;
      
      int counter = 0;
      while (radius >= delta) {
        fill(colors[counter % colors.length]);
        ellipse(x, y, radius, radius);
        counter++;
        radius -= delta;
      }
    }
  }
}