//Parallel Bot by Aaron Steed memory mem = new memory (100.0,100.0); bot bOne = new bot(100.0,100.0,1.0,50.0,1.0,mem); void setup() { size (500,300); background(240); fill(200,0,0); framerate(24); } void loop() { req(); }//loop; class memory{ float [] xs=new float[1]; float [] ys=new float[1]; memory (float xtt,float ytt){ xs[0]=xtt; ys[0]=xtt; } void extendx(float newx) { float[] tempx = new float[xs.length + 1]; System.arraycopy(xs, 0, tempx, 0, xs.length); tempx[xs.length] = newx; xs = tempx; } void extendy(float newy) { float[] tempy = new float[ys.length + 1]; System.arraycopy(ys, 0, tempy, 0, ys.length); tempy[ys.length] = newy; ys = tempy; } }//memory; class bot { float x; float y; float p=PI; float th; float nTh; float L; int ind=1; int rad=12; memory mem; bot(float xt,float yt,float tht,float Lt,float nTht, memory memt){ x=xt; y=yt; th=tht; L=Lt; nTh=nTht; mem=memt; } void turn(){ th=nTh; } void traject(){ if (r2()){ ind=iwrap(ind+1,rad); } else { ind=iwrap(ind-1,rad); } nTh=(TWO_PI/rad)*ind; }//traject; void sniff(){ float sniffx; float sniffy; float c=0.0; for (int i=0;iilimi){ icar=(icar)%ilimi; } if (icar<0){ icar=ilimi-icar; icar=(icar)%ilimi; icar=ilimi-icar; } return icar; }//iwrap; float fwrap (float fvalu, float flimi){ float fcar=fvalu; if (fcar>flimi){ fcar=(fcar)%flimi; } if (fcar<0){ fcar=flimi-fcar; fcar=(fcar)%flimi; fcar=flimi-fcar; } return fcar; }//fwrap; boolean aprx(float v1,float v2,float er){ if ((v1 < (v2+er)) && (v1 >(v2-er))){ return true; } else { return false; } }//aprx; float getTh (float xp, float yp){ float xm1; float ym1; float xm2; float ym2; float xm3=0.0; float ym3=0.0; for (int i=1;i= x1 && xo <= x2 && yo >= y1 && yo <= y2) { return true; } else { return false; } } void req(){ bOne.traject(); bOne.sniff(); bOne.turn(); bOne.stack(); bOne.dline(); }//req; boolean r2() { if (int(random(2))==1){return true;}else{return false;} }//r2;