fractalkitty looking for math? fractalkitty.com

100 days of code

quilter

#random#interactive#math#geometry#tiling#truchet#home

rotConfig

let n=35;
c=0;
function setup(){
  createCanvas(windowWidth,windowHeight)
  angleMode(DEGREES);
  fill(0,100,200);
  noStroke();
  frameRate(1)
}
function draw(){
  r=30
  background(255,255,255);
  t=frameCount
  for (let j=0;j<n+3;j++){
    for (let i=0;i<n+3;i++){
      p=int(random(0,4))
      fill(0,4*i+4*j,100+i*2+j*2)
      push() 
        translate(i*(width/n),j*width/n);
        rotConfig(c,i,j);
        triangle(0,0,0,width/n,width/n,width/n);
      pop()
    }
  }
  noLoop()
}
function mousePressed(){
  c = c+1;
  draw();
  
}

function rotConfig(config,i,j){
  if (config ==1){
    if (i%2==0){
      rotate(90);
    }
  }
  if (config%2==0&config!=0){
    rotate(90*int(random(0,4)))
  }
  if (config ==3){
    if (i%4==0&&j%2==0){
      rotate(90);
    }
  }
  if (config ==5){
    if (i%2==0&&j%4==0){
      rotate(-90);
    }
  }
  if (config ==7){
    if (i>n/2&&j>n/2){
      rotate(90);
    }
    if (i<=n/2&&j>n/2){
      rotate(180);
    }
    if (i<n/2&&j<=n/2){
      rotate(-90);
    }
  }
  if (config ==9){
    rotate(90*i+90*j)
  }
  if (config ==11){
    rotate(90*i-180*j)
  }
  if (config ==13){
    rotate(90*i-90*(j+i%2))
  }
  if (config ==15){
    rotate(90*i-90*(i+i%2))
  }
  if (config ==17){
    rotate(90*i-90*(i+i%2))
    rotate(90*i-90*(i+i%2))
  }
  if (config ==19){
    rotate(90*i-90*(i+j%2))
    rotate(90*i-90*(i+i%2))
  }
  if (config ==21){
    rotate(90*i-90*(j+i%2))
    rotate(90*i-90*(i+j%2))   
  }
  if (config ==23){
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2))   
  }
  if (config ==25){
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
  }
  if (config ==27){
    rotate(90*i-90*(j+i%5))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
  }
  if (config ==29){
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*i-90*(j+i%2))
    rotate(90*i-90*(j+j%2)) 
  }
  if (config ==31){
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*i-90*(j+i%2))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*i-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*i-90*(j+i%2))
    rotate(90*i-90*(j+j%2)) 
  }
  if (config ==33){
    rotate(90*j-90*(j+i%3))
    rotate(90*i-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
    rotate(90*i-90*(j+j%2)) 
  }
  if (config ==35){
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
  }
  if (config ==37){
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
  }
  if (config ==39){
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
  }
  if (config ==41){
    rotate(90*(j%4)-90*(j+j%2)) 
    rotate(90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
  }
  if (config ==43){
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
  }
  if (config ==45){
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
  }
  if (config ==47){
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%2)) 
    rotate(90*(j%5)-90*(j+j%2)) 
  }
  if (config ==49){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+j%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
  }
  if (config ==51){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
  }
  if (config ==53){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
  }
  if (config ==55){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
  }
  if (config ==57){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    if(i>n/2){
      rotate(90);
    }
  }
  if (config ==59){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    if(i>n/2){
      rotate(90);
    }
    if(j>n/2){
      rotate(90);
    }
  }
  if (config ==61){
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    rotate(-90*(j%7)+90*(j+i%4)) 
    rotate(-90*j-90*(j+i%2))
    rotate(90*(i+j)-90*(j+i%3)) 
    rotate(90*(j%5)-90*(j+j%2)) 
    if((i>=n/2&&j>=n/2)||(i<=n/2&&j<=n/2)){
      rotate(-90);
    }
    if((i>n/2&&j<n/2)||(i<n/2&&j>n/2)){
      rotate(180);
    }
  }
  if (config ==63){
    rotate(180*(j%7)+90*(j+j%4)) 
    rotate(-90*j-90*(j+j%2))
    rotate(90*(i+j)-90*(i+i%5)) 
    rotate(90*(j%5)-90*(i+j%5)) 
  }
  if (config ==65){
    rotate(90*(j%5)+90*(j+j%2)) 
    rotate(-90*j-90*(j+j%2))
    rotate(-90*(i+j)-90*(i+i%5)) 
    rotate(90*(j%5)-90*(i+j%5)) 
  }
  if (config ==67){
    rotate(90*(j%5)-90*(i+j%2)) 
    rotate(90*j+90*(i+j%9))
    rotate(-90*(i%2+j)-90*(i+i%5)) 
    rotate(90*(j%3)-90*(i+j%9)) 
  }
  if (config ==69){
    rotate(-90*(j%2)+-90*(i%3)); 
  }
  if (config ==71){
    rotate(90*(j%3)+90*(i%5));
    rotate(180*(i%3)+90*(j%5));
  }
  if (config ==73){
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(180*(j%5+i)+90*(j%5));
  }
  if (config ==75){
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(180*(j%5+i)+90*(j%5));
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(180*(j%5+i)+90*(j%5));
  }
  if (config ==77){
    rotate(-90*(i%4-j)+90*(i%7));
    rotate(180*(j%6+i)+90*(j%3));
    rotate(-90*(i%4-j)+90*(i%7));
    rotate(180*(j%5+i)+90*(j%3));
  }
  if (config ==79){
    rotate(-90*(i%4-j)+90*(i%7));
    rotate(180*(j%6+i)+90*(j%3));
    rotate(-90*(i%4-j)-90*(i%7));
    rotate(180*(j%5+i)+90*(j%3));
  }
  if (config ==81){
    rotate(-90*(i%4-j)+90*(i%7));
    rotate(90*(j%6+i)+90*(j%3));
    rotate(-90*(i%4-j)-90*(i%7));
    rotate(180*(j%5+i)+90*(j%3));
  }
  if (config ==83){
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(-90*(j%6+i)+90*(j%3));
    rotate(-90*(i%5-j%2)-90*(i%4));
    rotate(180*(j%5-i%3)+90*(j%3));
  }
  if (config ==85){
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(-90*(j%6+i)+90*(j%3));
    rotate(-90*(i%5-j%2)-90*(i%4));
    rotate(90*(i%2-j%6)+90*(j%3));
  }
  if (config ==87){
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(-90*(j%6+i)+90*(j%3));
    rotate(-90*(i%5-j%2)-90*(i%4));
    rotate(-90*(i%4-j)+90*(i%5));
    rotate(-90*(j%6+i)+90*(j%3));
    rotate(-90*(i%5-j%2)-90*(i%4));
  }
  if (config ==89){
    rotate(-90*(i%2-j)+90*(i%5));
    rotate(-90*(j%3+i)+90*(j%3));
    rotate(-90*(i%4-j%2)-90*(i%4));
    rotate(-90*(i%5-j)+90*(i%5));
    rotate(-90*(j%6+i)+90*(j%3));
    rotate(-90*(i%7-j%2)-90*(i%4));
  }
  if (config ==91){
    rotate(-90*(i%5)-90*(j%2+i));
  }
  if (config ==93){
    rotate(90*(i%4)-180*(j%2+i%7));
  }
  if (config ==95){
    rotate(90*(j%3));
    rotate(90*(i%3));
  }
  if (config ==97){
    rotate(90*(j%3));
    rotate(90*(i%3));
    rotate(90*(j%3));
    rotate(90*(i%3));
  }
  if (config ==99){
    rotate(90*(j%4));
    rotate(90*(i%5));
    rotate(90*(j%2));
    rotate(90*(i%5));
  }
  if (config ==101){
    rotate(90*(j%5));
    rotate(90*(i%5));
    rotate(90*(j%2));
    rotate(90*(i%2));
  }
  if (config ==103){
    rotate(90*(j%5));
    rotate(90*(i%5));
    rotate(90*(j%4));
    rotate(90*(i%4));
  }
  if (config ==105){
    rotate(90*(j%3));
    rotate(90*(i%3));
    rotate(90*(j%4));
    rotate(90*(i%4));
  }
  if (config ==107){
    rotate(90*(i-j)+90*(j%3));
  }
  if (config == 108){
    c=0;
  }
}