Я следовал руководству Shiffmans по рекурсии, чтобы закончить с этим:
Как видите, он не идеален, и я думаю, что код можно оптимизировать.Как мне избавиться от толстых линий, которых там быть не должно?И если вы получите представление о том, как я могу оптимизировать этот код, скажите мне, пожалуйста!
Это было сделано с обработкой 3.3.6, а код следующий:
void setup() {
size(800, 800);
}
void draw() {
background(255);
fill(0);
noStroke();
rectMode(CENTER);
Serpinski(width/2, height/2, width/3);
}
void Serpinski(int x, int y, int d) {
rect(x, y, d, d);
if (d > 1) {
Serpinski(int(x+ d), y, d*1/3);
Serpinski(int(x- d), y, d*1/3);
Serpinski(x, int(y+ d), d*1/3);
Serpinski(x, int(y- d), d*1/3);
Serpinski(int(x+ d), int(y+ d), d*1/3);
Serpinski(int(x- d), int(y- d), d*1/3);
Serpinski(int(x+ d), int(y- d), d*1/3);
Serpinski(int(x- d), int(y+ d), d*1/3);
}
}