SneakySquid icon

Brownian Tree Snowflake

SneakySquid | PRO | 02/02/21 11:33:51 PM UTC | 0 ⭐ | 1562 👁️ | Never ⏰ | []
Java |

1.07 KB

|

None

|

0 👍

/

0 👎

int iterations = 5000;
PVector[] snowflake = new PVector[iterations];
 
void setup() {
  size(720, 720);
  background(0);
  
  for (int i = 0; i < iterations; i++) {
    boolean stopped = false;
    PVector current = new PVector(width / 2, 0);
 
    while (!stopped) {
      current.x -= 1;
      current.y += random(-10, 10);
 
      if (current.x <= 0) {
        stopped = true;
      } else {
        for (int j = 0; j < i; j++) {
          PVector point = snowflake[j];
          float d = dist(point.x, point.y, current.x, current.y);
 
          if (d <= 2) {
            stopped = true;
            break;
          }
        }
      }
    }
 
    snowflake[i] = current;
  }
}
 
void draw() {
  translate(width / 2, height / 2);
 
  noFill();
  stroke(255);
 
  for (int i = 0; i <= 360; i += 60) {
    push();
    rotate(radians(i));
 
    for (PVector part : snowflake) {
      point(part.x, part.y);
    }
    
    scale(1, -1);
 
    for (PVector part : snowflake) {
      point(part.x, part.y);
    }
    pop();
  }
 
  noLoop();
}
 

Comments