У меня есть немного кода Processing 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' каждую итерацию, однако я не знаю,это точно.У меня есть рабочая версия программы, которая использует фиксированное количество сторон, если вы хотите увидеть, чего я пытаюсь достичь.