constbgCol="#447abd";constgCol="#a2c2e8";constnGrid=20;letwt,gSpace;letpts;functionsetup(){w=max(400,min(windowWidth,windowHeight)*0.9);describe("circles follow a circuit path that traces multiple triangles on an Eulerian Cycle on a blueprint design. ");gSpace=(w/nGrid)*0.95;createCanvas(w,w);rectMode(CENTER);angleMode(DEGREES);textSize(16);pts=[{x:2.5*gSpace,y:0},{x:0,y:2.5*gSpace},{x:-2.5*gSpace,y:0},{x:0,y:-8.5*gSpace},{x:-7.5*gSpace,y:7.5*gSpace},{x:7.5*gSpace,y:7.5*gSpace},{x:0,y:-8.5*gSpace},{x:2.5*gSpace,y:0},{x:7.5*gSpace,y:7.5*gSpace},{x:0,y:2.5*gSpace},{x:-7.5*gSpace,y:7.5*gSpace},{x:-2.5*gSpace,y:0},{x:2.5*gSpace,y:0}];}functiondraw(){background(68,122,189);translate(w/2,w/2);drawGrid();t=500+frameCount/3;noStroke();for(leti=0;i<pts.length-1;i++){fill(162+i*10,194+i*10,232+i*10);lineT(pts[i].x,pts[i].y,pts[i+1].x,pts[i+1].y,4+i/2);}noStroke();fill(gCol);text("circuit",-w/2+10,w/2-5);}functionlineT(x1,y1,x2,y2,r){circle(x1,y1,10);circle(x2,y2,10);letn=10;if(x1>x2){letm=(y2-y1)/(x2-x1);lets=(x2-x1)/n;for(leti=0;i<n;i++){letx=x1-((s*i+t)%(s*n));circle(x,m*(x-x1)+y1,r);}}else{letm=(y2-y1)/(x2-x1);lets=(x2-x1)/n;for(leti=0;i<n;i++){letx=x1+((s*i+t)%(s*n));circle(x,m*(x-x1)+y1,r);}}}functiondrawGrid(){stroke(gCol);strokeWeight(0.3);for(leti=1;i<=nGrid;i++){for(letj=1;j<=nGrid;j++){line(-w/2+gSpace*i,-w/2+gSpace,-w/2+gSpace*i,w/2-gSpace);line(-w/2+gSpace,-w/2+gSpace*i,w/2-gSpace,-w/2+gSpace*i);}}noFill();strokeWeight(3);rect(0,0,w-2*gSpace);}functionmousePressed(){setup();draw();}functionwindowResized(){setup();draw();}