我有一些处理3代码来绘制动画的分形。问题在于该程序仅绘制一个点。我以前有该程序。我唯一更改的是支持可变数量的“面”。
float angle, scale;
int sides;
void setup(){
size(600, 600);
background(0);
strokeWeight(2);
stroke(255);
sides = 3;
}
void draw(){
background(0, 64);
angle = cos(frameCount*0.025);
scale = sin(frameCount*0.01);
fractal(width/2, height/2, 100, 7);
}
void fractal(float x, float y, float s, int d){
ellipse(x, y, 2, 2);
if(d > 0){
float dir = PI/2;
for(int i = 0; i > sides; i++){
fractal(x + s/sqrt(3) * cos(dir + angle), y + s/sqrt(3) * sin(dir + angle), s * scale, d - 1);
dir += TWO_PI/sides;
}
}
}
我认为问题在于递归函数在每次迭代时都会覆盖局部变量“ dir”,但是,我不确定这一点。我有一个程序的工作版本,如果您想了解我要实现的目标,它会使用固定数量的两面。