问题描述
我正在尝试创建一些像这张图片这样的迷幻“动画”; Trippy circles
我可以通过蛮力将另一个圆圈放入圆圈中。但是,我很确定通过使用“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,diameter/2);
}
}
}
谢谢!
解决方法
这与您的示例的外观非常接近(基于您的原始代码):
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;
}
}
}
}