/** Binary tree by guru */ void setup() { size(600, 600); smooth(); } void draw() { background(255); stroke( 128, 64, 0); // int seed = 1; for ( int seed = 0; seed < 255; seed+=7) { int s = seed; pushMatrix(); // int l = 1024; int l = 512; scale(0.3333, 0.3333); translate(3*width/2 - 128 + seed, 3*height); pushMatrix(); for ( int i =0; i < 8; i++) { // strokeWeight( l/8); int mod = int(pow( 2, 8-i)); int ot = seed % mod; int ofs = ot > mod/2 ? (mod - ot) : ot ; line( 0, 0, 0, -l - ofs ); translate( 0, -l - ofs ); if ( (s & int(pow( 2, (7-i)))) == 0) { rotate( radians(-45)); } else { rotate( radians(45 )); } l = int (l * 0.6) ; } noStroke(); fill(0, 255, 0); ellipse( 0, 0, 64, 32); stroke(128, 64, 0); popMatrix(); popMatrix(); } }