void transit(){ float tF=float(t), fadepoint=0.8, fade; //background arrangements if (tF/T<=fadepoint){ fade=255-255*sq((fadepoint-tF/T)/fadepoint); stroke(fade); strokeWeight(1); Barrangements(ki,kf); }else{ fade=255-255*sq((tF/T-fadepoint)/(1-fadepoint)); stroke(fade); strokeWeight(1); Barrangements(kf,ki); } //arrangements in transit float[] p1=location(ki,kf); float[] p2={bigX,bigY}; float[] p3=location(kf,ki); // //ki goes from p2 to p3 String [] data=split(configs[ki],' '); boolean[] Hi=new boolean[12], Vi=new boolean[12]; for (k=0; k<=11;k++){Hi[k] =boolean(int(data[k]));} for (k=12;k<=23;k++){Vi[k-12]=boolean(int(data[k]));} float[] ci=new float[5], ri=new float[5]; float ui=p2[0]+(tF/T)*(p3[0]-p2[0]); float vi=p2[1]+(tF/T)*(p3[1]-p2[1]); for(k=0;k<5;k++){ ci[k]=C[k]+(tF/T)*(c[k]-C[k]); ri[k]=R[k]+(tF/T)*(r[k]-R[k]); } stroke(0); strokeWeight(2-tF/T); boxdraw(ui,vi,ci,ri,Hi,Vi); // //kf goes from p1 to p2 if (state==1){ data=split(configs[kf],' '); boolean[] Hf=new boolean[12], Vf=new boolean[12]; for (k=0; k<=11;k++){Hf[k] =boolean(int(data[k]));} for (k=12;k<=23;k++){Vf[k-12]=boolean(int(data[k]));} float[] cf=new float[5], rf=new float[5]; float uf=p1[0]+(tF/T)*(p2[0]-p1[0]); float vf=p1[1]+(tF/T)*(p2[1]-p1[1]); for(k=0;k<5;k++){ cf[k]=c[k]+(tF/T)*(C[k]-c[k]); rf[k]=r[k]+(tF/T)*(R[k]-r[k]); } stroke(0); strokeWeight(1+tF/T); boxdraw(uf,vf,cf,rf,Hf,Vf); } }